说说对jsx的理解

JSX:可理解成html,经过Bable就是运行在浏览器上的代码了。
在原生中,js创建dom用
var a = document.createElement(‘p’);
a.setAtribute(‘class’,‘myp’);
a.appendChild(document.createTextNode(‘pp’));

pp


而在react中,
var a = React.createElement(‘a’,{
class:‘link’
},
‘pp’)
第一个参数:为元素节点
二 :为对象,dom属性
三 :文本

如上看起来要比原生的简洁很多,但是可读性不好,于是发明了JSX代码,利用我们熟悉的html语法来创建元素。之后jsx通过翻译器转换到纯js再由浏览器执行。JSX只是一种语法,因此JS的关键字来class,for也不能出现JSX中,使用className代替。
注:没有JSX中的React也可以正常工作的,但使用JSX的原因。
1.结构简单明了。
2.利于开发和维护
3.比函数调用和对象字面量更易于读。
再者:
每个框架都有自己的模板引擎。例如:angular遍历用ng-for…
所以react放弃自己的模板而发明JSX。
总结:
原生:html创建don树。
react:jsx虚拟来创建dom树。
最后,jsx不能带来任何性能上的优化。
关于虚拟dom:
jsx—>createElement–>虚拟don(js对象)–>真实的dom

总结流程图:
在这里插入图片描述
参考链接:
https://blog.csdn.net/weixin_33712881/article/details/89050876?ops_request_misc=&request_id=&biz_id=102&utm_term=jsx%25E6%2598%25AF%25E5%25A6%2582%25E4%25BD%2595%25E9%2598%25B2%25E6%25AD%25A2xss%25E6%2594%25BB%25E5%2587%25BB%25E7%259A%2584&utm_medium=distribute.pc_search_result.none-task-blog-2allsobaiduweb~default-6-89050876.pc_search_result_no_baidu_js

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值