zoukankan      html  css  js  c++  java
  • React 之 jsx

    1)全称:javascript xml

    2)react定义的一种类似xml的js扩展语法:js + xml

    3)本质是React.createElement(component,props,...children)方法的语法糖

    4)作用:用来简化创建虚拟dom

        a. 写法: var ele = <h1>hello jsx </h1>

        b. 注意1: 它不是字符串,也不是html/xml标签

        c. 注意2: 他最终产生的就是一个js对象

    5)标签名任意:HTML标签或其他标签

    jsx语法规则:

     1.定义虚拟dom时,不要写引号

     2.标签中混入js表达式要用{}

     3.样式的类名指定不要用class,要用className

     4.内联样式,要用style={{ key:value}}的形式去写  value若不是变量就要给字符串

     5.虚拟dom只有一个根标签

     6.标签必须闭合

     7.标签首字母

      (1)若小写字母开头,则将该标签转为html标签,若html中无该标签对应的同名元素,则报错

           (2)若大写字母开头,react就去渲染对应的组件,若组件没有定义,则报错

    练习案例

    <!-- 此处有一个容器 -->
      <div id="test"></div>
      <script src="js/react.development.js"></script>
      <script src="js/react-dom.development.js"></script>
      <script src="js/babel.min.js"></script>
      <script type="text/babel"> /* 一定要写babel */
        const data=['张三','李四','王五']
         const VDom  = (
         <ul>
            {
              data.map(item=>{
                return <li key={item}>{item}</li>
              })
            }
          </ul>
         )
         ReactDOM.render(VDom,document.getElementById('test'))
      </script>

    扩展:

     xml 早期用于存储和传输数据

     但是随着发展,逐渐被json所取代

    注意:

    一定注意区分 [js语句] 与 [js表达式]

    1.表达式:一个表达式会产生一个值,可以放在任何一个需要值的地方

       下面这些都是表达式

        a,  a+b  ,  arr.map()    ,function test() {} 返回的就是函数体

    2.语句(代码):

        下面这些都是语句(代码)

           (1)if(){}

          (2)for(){}

           (3)switch(){case:}

    常见错误;

    object are not valid as a react child

    解答:在react 中不能直接给对象,可以给数组

  • 相关阅读:
    关于使用AJAX获取数据时,由于IE缓存而导致数据不更新,串数据的问题!
    优化PHP代码的40条建议(转)
    这么晚了!难得今天看了几个小时的JAVA
    WEB开发,路漫漫其修远兮,个人的求索思考
    (转)高效的MySQL分页
    20121108随笔,关于代码严谨性、编写的优雅性
    Ubuntu 12.04LTS 安装PHP扩展pdo_oci.so支持ORACLE数据库
    程序员应该具备的11项基本技能
    Windows下配置使用MemCached
    PHP浮点数比较
  • 原文地址:https://www.cnblogs.com/zmztya/p/14623077.html
Copyright © 2011-2022 走看看