HTML页面
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8" /> <link rel="icon" href="%PUBLIC_URL%/favicon.ico" /> <meta name="viewport" content="width=device-width, initial-scale=1" /> <meta name="theme-color" content="#000000" /> <meta name="description" content="Web site created using create-react-app"/> <link rel="apple-touch-icon" href="%PUBLIC_URL%/logo192.png" /> <link rel="manifest" href="%PUBLIC_URL%/manifest.json" /> <title>React App</title> </head> <body> <noscript>You need to enable JavaScript to run this app.</noscript> <div id="root"></div> </body> </html>
一 . 1 先声明父组件,用来向Son组件传值。
//引入React组件 import React from ‘react‘; //引入React-dom组件 import ReactDOM from ‘react-dom‘; //引入子组件Son import Son from ‘./Son‘; //声明一个父组件名为Father class Father extends React.Component{ //类自带的构造函数constructor constructor(){ //继承React super(); //声明一个类函数专属的状态state this.state={ message:"hello,This is my son‘s data。。。" } } //渲染方法,类组件中必须有的渲染方法。 render(){ //渲染方法中必须有的return 返回值,并且返回值最外层必须是只有一个标签。 return ( //如果页面中不希望有无用的标签,可以用React中自带的<React.Fragment>标签 <React.Fragment> {/*实例化Son组件并向Son组件传递数据,渲染到页面*/} <Son mess={this.state.message} /> </React.Fragment> ); } } //获取目标元素,并渲染 ReactDOM.render(<Father />,document.querySelector("#root"))
一 . 2 声明一个Son组件,接受Father组件的数据,并向父组件返回渲染数据。
//引入React import React from ‘react‘; //声明一个子组件,名为Son class Son extends React.Component{ //声明render方法 render(){ //return返回 return( <React.Fragment> <h1>这是Son组件</h1> {/* 调用组件之间传参props 渲染数据到页面 */} {this.props.mess} </React.Fragment> ); } } //向外暴露自己 export default Son;
二 . 1 声明一个父组件,名为Father。
//引入React组件 import React from ‘react‘; //引入React-dom组件 import ReactDOM from ‘react-dom‘; //引入子组件Son import Son from ‘./Son‘; //声明一个父组件名为Father class Father extends React.Component{ //声明一个类中自带的构造函数 constructor(){ //继承react super(); //声明一个state状态 this.state={ message:"" } } //声明一个用来接收子组件数据的方法 getSonMess(msg){ this.setState({ message:msg }) } //渲染方法 render(){ return( <React.Fragment> <h1>这是Father组件</h1> {/* 实例化子组件 */} <Son mess={this.getSonMess.bind(this)} /> <hr /> {/* 输出从Son组件中获取的数据 */} <h1>这是从Son组件中获取的数据</h1> {this.state.message} </React.Fragment> ); } } //获取目标元素,并渲染 ReactDOM.render(<Father />,document.querySelector("#root"))
二 . 2 声明一个子组件Son,向父组件Father传数据
import React from ‘react‘; class Son extends React.Component{ //创建构造函数 constructor(){ super(); //创建数据 this.state={ message:"这是在Son子组件生成的数据。。" } } //创建一个方法用来向父组件传数据 addFatherMess(){ this.props.mess(this.state.message) } render(){ retrun( <React.Fragment>
<h1>这是Son组件</h1> {/* 绑定一个点击事件,向父组件传数据 */} <button onClick={this.addFatherMess.bind(this)}>点击获取数据</button> </React.Fragment> ); } } //向外暴露 export default Son;
原文:https://www.cnblogs.com/xiaobu-wu/p/12071604.html