zoukankan      html  css  js  c++  java
  • react的环境搭建(2018/12/5)

    一、react的环境搭建
    操作步骤:
    ①新建一个文件夹,在目标路径下打开CMD   安装react  cnpm i  react react-dom  //react-dom用于操作jsx的语法,操作虚拟dom
    ②安装babel(用于将es6格式转为es5  识别script中的标签)   cnpm i    babel-standalone   --save 
    ③新建一个js文件夹
    ④在node_modules中的react/umd/react.development.js------->复制文件到js文件夹中
                                          react-dom/umd/react-dom.development.js------->复制到js文件夹中
                                          babel-standalone/babel.js------>复制到js文件夹中   
    ⑤将以上三个文件引入新建的hello.html文件中  顺序不能错  
    ⑥在script中 写<script  type="type/babel">
    hello.html
    <!DOCTYPE html>
    <html>
         <head>
              <meta charset="UTF-8">
              <title></title>
              <script src="js/react.development.js"></script>   //引入js文件 但是顺序一定不能错
              <script  src="js/react-dom.development.js"></script>
              <script src="js/babel.js"></script>
         </head>
         <body>
              <div id="box"></div>
              
              <script type="text/babel">
                        //这种写法是jsx  javascript + xml   语法糖   就是将js和html写在一起
                  ReactDOM.render(<h1>helloword</h1>,      //ReactDOM.render是渲染dom元素
                  document.getElementById("box"))
              </script>
         </body>
    </html>
     
     
    二、jsx的基本用法
    <!DOCTYPE html>
    <html>
         <head>
              <meta charset="UTF-8">
              <title></title>
              <script src="js/react.development.js"></script>
              <script  src="js/react-dom.development.js"></script>
              <script src="js/babel.js"></script>
              
              <style type="text/css">
                  .bg{
                       background:blue
                  }
              </style>
         </head>
         <body>
              <div id="box"></div>
              
              <script type="text/babel">
                  
                  var msg = "react"  //字符串
                   var a = 123;       //数据型
                  var flag=true;     //布尔型
                  var obj={          //对象数据类型,但是不能直接显示,需要 obj.a访问其中的值
                       a:1,
                       b:2
                  }
                  var arr = ["ff","dd","ss"]  //数组
                 
                  var content=<div>     //将其他变量中的内容以{差值表达式}的方法添加到这个变量中
                  在这里面通过变量添加内容
                  {msg.toUpperCase()}
                  {a}
                  {flag?"yes":"no"}
                  <p className="bg">{arr[0]}</p>   /*因为class是js中的关键字 所以需要变成className*/
                  <span style={{color:'pink'}}>{obj.a}</span>  //style定义属性时候需要用{{}},外面的{}是差值表达式,里面的{}是对象的表示方法
                  </div>
                  
                  
                  ReactDOM.render(content, //content变量中包含了其他的变量中的值
                  document.getElementById("box"))
              </script>
         </body>
    </html>
     
    三、遍历数组   显示列表
    用map遍历数组
    <body>
              <div id="box"></div>
              <script type="text/babel">
                  var arr = ["aa","bb","cc"]
                  ReactDOM.render(<div>
                       <ul>
                       {   //差值表达式
                            arr.map((item,index)=>{
                                 return <li key={index}  style={{color:index===0?"red":''}}>{item}</li>  /*item和index用{}括起来使他们变成了变量可以进行遍历*/
                            })
                       }
                       </ul>
                       
                  </div>,
                  document.getElementById("box"))
              </script>
         </body>
     
    用forEach循环遍历
    var arr=["ff","gg","hh"]
                  var showList=(arr)=>{
                       var newarr=[];
                       arr.forEach((item,index)=>{
                            newarr.push(<p  key={index}>{item}</p>) //数组或迭代器中的每一个子项都需要有唯一的key对应的index
                       })
                       return newarr;
                  }
                  ReactDOM.render(<div>
                       {
                            showList(arr)
                       }
                       
                  </div>,
                  document.getElementById("box"))
     
     
    四、遍历对象 
    Object.keys(对象的变量名)    遍历对象的所有键(key),形成一个数组。     //数组中的内容就是键的名称 注意Object大小写
    <body>
              <div id="box"></div>
              <script type="text/babel">
                  var obj = {
                       "a1":"aaaaaaaaaaaaaa",
                       "b1":"bbbbbbbbbbbbbb",
                       "c1":{
                            "c2":"1111111111111",
                            "c3":"2222222222222"
                       },
                       "d1":"ddddddddddddddddd"
                  }
                  console.log(Object.keys(obj))   //["a1","b1","c1","d1"]
              ReactDOM.render(<div>
                  {
                       Object.keys(obj).map((item)=>{
                            return <div key={item}>  //将item作为index值,因为item也是唯一的    item值为 a1,b1,c1,d1
                                          {item!=="c1"?obj[item]:<ul>   //如果item不等于c1 那么就取obj中的值  obj[item]表示的是这个键对应的值  
                                               {
                                                    Object.keys(obj[item]).map((t)=>{  // t代表的是c1中所有的键 c2 c3    Object.keys(obj[item])代表的是["c2","c3"]
                                                         return <li key={t}><img src={obj[item][t]}/></li>  //这里的obj[item]是c1中的键和值    object[item][t]是c2或c3的值
                                                    })
                                               }
                                               </ul>
                                          }
                                      </div>
                       })
                  }
              </div>,
                  
              document.getElementById("box"))
                 
              </script>
         </body>
     
     
     
     
  • 相关阅读:
    android中正确保存view的状态
    使用AudioTrack播放PCM音频数据(android)
    【录音】Android录音--AudioRecord、MediaRecorder
    (原创)初识cordova(一)
    忽略git中不需要进行版本管理的文件
    GitHub 小试
    通过View.post()获取View的宽高
    org.json.JSONObject的getString和optString使用注意事项
    android---EditText的多行输入框
    【转】我赌5毛你没见过这样的SpannableString
  • 原文地址:https://www.cnblogs.com/zsrTaki/p/11510698.html
Copyright © 2011-2022 走看看