zoukankan      html  css  js  c++  java
  • react组件选项卡demo

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>Document</title>
        <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.js"></script>
    </head>
    <body>
        <div id="app">
    
        </div>
        <script type="text/babel">
            let arr = [1,2,3,4];
            // 根组件默认拿到全局变量为data的值 在子组件传值直接传值进行调用
           class List3 extends React.Component{//必须是大写的首字母
               constructor(props){ //构造函数传参
                   super(props);    //调用所有原型上的属性来实现props传值
                   this.state = {
                       n:0
                   }
               }
               inc(ind){
                    // 当调用时不绑定this时,this指向调用的window,由于是严格模式所以指向undefined
                       this.setState({
                           n:ind
                       })
                   };
               render(){
                   console.log(this);//符号必须是分号不能是逗号
                   let {data} = this.props;
                   let {n} = this.state;
                   return(
                                data.map((item,index)=>{
                                return (
                                    <div key={index} style={{color:n===index?'red':null}} 
                                    onClick={this.inc.bind(this,index)}>{item}</div> 
                                    //这里的this指向的是实例 但在再调用时 由于是window.onclick调用
                                    // 导致内部this.setState拿不到this指向。又由于es6严格模式所以不会指向winodow而是undefined
                                    // 所以就会报错 不存在这个属性
                                )
                            }
                        )
                   )
               }
           }
    
           ReactDOM.render(
               <div>
                    <List3 data={arr}/>
               </div>,
               document.getElementById('app')
           )
        </script>
    </body>
    </html>
  • 相关阅读:
    iOS-远程推送
    iOS--二维码
    iOS-应用打包发布常见问题
    iOS-应用上架
    iOS-内存管理
    在Linux系统中使用蓝牙功能的基本方法
    Git服务器的Gitosis安装配置及gitignore的使用方法
    Linux系统下Git操作命令整理
    在Linux系统下使用Github的基本教程
    安装专业版的linux的方法 图解安装专业版的linux
  • 原文地址:https://www.cnblogs.com/l8l8/p/9454317.html
Copyright © 2011-2022 走看看