欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

react 学习笔记第二次课

程序员文章站 2022-07-09 23:38:03
...


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>