react 第二次课
jsx--变量
jsx--function
component
------------------------------------------
component 组件
写法
1.class
2.自定义组件
1.class //继承
class HelloMessage extends React.Component{//组件
render(){
return <h1>hello,{this.props.abc}</h1>
}
};
传参:通过标签的自定义属性传参
例子: <HelloMessage abc={data.address}/>
获取参数:例子:{this.props.abc}
------------------------------------------
2.自定义组件
const data = {
address:'wuhan',
obj:{
name:'sonia'
}
};
const name = 'lili';
/*自定义组件 需要显示传递props 方法二*/
function Welcome(props){
return <h1>hello,{props.name}</h1>
};
使用:<Welcome name={data.address}/>
注意:自定义函数名 首字母要求大写!!
------------------------------------------
组件嵌套
下面是代码展示
<!DOCTYPE html> <html> <head> <title>jSX-function</title> <meta charset="UTF-8" /> <script src="node_modules/react/umd/react.development.js"></script> <script src="node_modules/react-dom/umd/react-dom.development.js"></script> <script src="node_modules/babel-standalone/babel.min.js"></script> <style> .lists { color:#f60; } </style> </head> <body> <div id="example"></div> <script type="text/babel"> /*JSX 用于将模板转为 HTML 语言,并插入指定的 DOM 节点*/ function action(item){ return item.name +''+item.age; //return item; }; //var user ='world123'; const user = { name:'lili', age:22 }; var element =<h1 className="lists">hello,{action(user)}</h1> ReactDOM.render( element, document.getElementById('example') ); </script> </body> </html>
<!DOCTYPE html> <html> <head> <title>component</title> <meta charset="UTF-8" /> <script src="node_modules/react/umd/react.development.js"></script> <script src="node_modules/react-dom/umd/react-dom.development.js"></script> <script src="node_modules/babel-standalone/babel.min.js"></script> <style> </style> </head> <body> <div id="example"></div> <script type="text/babel"> class HelloMessage extends React.Component{//组件 render(){ return <h1>hello,{this.props.abc}</h1> } }; const data = { address:'wuhan', obj:{ name:'sonia' } }; const name = 'lili'; /*自定义组件 需要显示传递props 首字母大写 方法二*/ function Welcome(props){ return <h1>hello,{props.name}</h1> }; ReactDOM.render( <div> <Welcome name={data.address}/> {/*<HelloMessage></HelloMessage>*/} <HelloMessage abc={data.address}/> </div>, document.getElementById('example') ); </script> </body> </html>
<!DOCTYPE html> <html> <head> <title>component--组合(嵌套)</title> <meta charset="UTF-8" /> <script src="node_modules/react/umd/react.development.js"></script> <script src="node_modules/react-dom/umd/react-dom.development.js"></script> <script src="node_modules/babel-standalone/babel.min.js"></script> <style> </style> </head> <body> <div id="example"></div> <script type="text/babel"> const data = { address:'wuhan', obj:{ name:'sonia' } }; const name = 'lili'; /*自定义组件 需要显示传递props*/ function Welcome(props){ return <h1>hello,{props.name}</h1> }; function App(){/*嵌套*/ return( <div> <Welcome name={data.address}/> <Welcome name='list2'/> <Welcome name='list3'/> </div> ); }; ReactDOM.render( <App />, document.getElementById('example') ); </script> </body> </html>
<!DOCTYPE html> <html> <head> <title>component--组合(嵌套)</title> <meta charset="UTF-8" /> <script src="node_modules/react/umd/react.development.js"></script> <script src="node_modules/react-dom/umd/react-dom.development.js"></script> <script src="node_modules/babel-standalone/babel.min.js"></script> <style> </style> </head> <body> <div id="example"></div> <script type="text/babel"> const comment = { date: new Date(), text: 'I hope you enjoy learning React!', author: { name: 'Hello Kitty', avatarUrl: 'http://placekitten.com/g/64/64' } }; function formatDate(d){ return d.toLocaleDateString(); }; function Comment(props){ return( <div className="list1"> <div> <img src={props.author.avatarUrl}/> <p>{props.author.name}</p> </div> <div>{props.text}</div> <div>{formatDate(props.date)}</div> </div> ) }; ReactDOM.render( <Comment date={comment.date} text={comment.text} author={comment.author}/>, document.getElementById('example') ); </script> </body> </html>