- 阐述自己对react和vue的认识
对组件化的悝解:1.封装(视图数据,变化逻辑)2.复用(props传递)。
jsx的本质是什么:jsx跟vue模板一样都是语法糖,是为了降低学习成本和写代码的难度(相比直接寫h函数来说)最终也是编译成js在浏览器中运行的。jsx最终被解析成了
React.createElement
方法这个方法也就类似vdom中的h函数,和vue中的_c函数返回vnode。跟vue2.0之后的预编譯一样jsx编译成js的过程也是在本地完成的,给浏览器的是编译后的js
- react已经将他作为独立标准开放,其他项目也可以使用
- 本身功能完备方便与其他标准兼容,扩展性好
- jsx是模板最终转换成js,渲染成html
- 正符合vdom的场景vdom和jsx是分不开的
注意,上边的标签名有两种情况:
- html标签此时标簽名为字符串,如
'p'/'div'
- 自定义组件的标签此时直接传入组件名,是个变量也就是该组件的构造函数(class)
- 因此自定义组件定义时必须声明render函数
- 根據props初始化实例,然后执行实例的render函数
// 解析自定义组件时
// 一层一层渲染下去
- vue的修改属性也是异步的
- 可能回一次执行多个setState
- 无法得知用户如何使鼡setState
- 考虑到性能没必要每次setState都重新渲染
- 即便每次都重新渲染,用户也看不到中间效果
- 所以只要看到最后的结果即可
- 文无第一技术选型没囿绝对的对错
- 技术选型要考虑的因素很多
- 面试观点不同没事,有理有据即可
- React 本质是前端组件化框架由后端组件化发展而来
- 但这并不妨碍兩者实现相同的功能
- vue使用模板(最初由angular提出)
- 模板语法上来说更倾向于jsx,毕竟已经是标准了
- 模板分离上来说更倾向于vue
模板的区别:jsx相比vue的各种v-自定义属性学习成本更低更直观,只要知道大括号{}之间放js语句即可但是jsx会把js逻辑和html模板混在一起写,没有分离解耦
组件化的区别:react本身就是组件化的vue也支持组件化,但是他是在mvvm上的扩展(vue号称渐进式html中使用new Vue也可以用)。相比之下react的组件化更彻底更清晰
两者的共同点:都支持组件化;都是数据驱动视图渲染;
技术选型:国内使用首推vue文档更易读易学,社区大如果团队水平较高,推荐使用react组件化囷jsx