JSX

作者: yzr_0802 | 来源:发表于2018-10-22 17:20 被阅读0次
<button class=“btn btn-bule”><em>Confirm</em></button>

=====>浏览器会解析====>虚拟dom

{
type:”button”,
props:{
    className:”btn btn-bule”,
    children:{
        type:”em”,
        props:{
            children:”Confirm"
        }
        }
    }
}

JSX基本原理

  • JSX官方定义是类XML语法的ECMAScript扩展。它利用了Javacript自带的语法和特性,并使用HTML语法来创建虚拟元素
  • JSX将HTML语法直接加入到Javascript代码中,再通过翻译器转换到纯Javascript后由浏览器执行
  • 在实际开发中,JSX在产品打包阶段都已经编译成纯Javascript,不会带来副作用。
  • babel作为专门的javascript语法编译工具,本质是通过React.reacteElememt来创建元素

JSX基本语法

  • 定义标签哈斯,只允许被一个标签包裹
  • 标签一定要闭合
  • 如果使用数据形式,必须对数组中的每一个元素都要给一个唯一的key值
  • 元素如果是小写首字母则是元素,如果是大写首字母则是组件元素
  • 我们也可以使用命名空间的方式以解决组件相同名称冲突的问题
  • 注释需要用{}包裹
  • class属性改为className
  • for属性改成htmlFor
  • 传入数据的展开性{…props}
  • 属性值要使用表达式;只要将{}来替换“”
  • HTML转译—React会将所有要显示DOM的字符串转译,防止XSS;
  • 为了防止转移这个问题,React提供了dangerouslySetInnerHTML <div dangerouslySetInnerHTML={{__html:”cc©2015"}}/>
  • JSX中,我们必须使用驼峰的形式来书写事件的属性名

相关文章

网友评论

      本文标题:JSX

      本文链接:https://www.haomeiwen.com/subject/uowgzftx.html