1.react
组件化:组件封装,组件复用
组件封装:封装视图、数据、变化逻辑(数据驱动视图变化)
组件复用:props传递,复用
JSX本质:JSX是语法糖,需要被解析成JS才能运行,JSX是独立的标准,可被其他项目使用
JSX就是模板,最终要渲染成html页面
需要virtual DOM的原因:JSX要渲染成html,数据驱动视图
2.setState的异步:
(原因):可能一次执行多次setState,无法规定、限制用户如何使用setState,没必要每次setState都重新渲染,考虑性能,即便每次重新渲染,用户看不到中间渲染的效果所以只要最后的效果就可以
3.Vue与react
两者本质的区别:模板和组件化的区别
Vue本质是MVVM框架,由MVC发展而来
react本质是前端组件化框架,由后端组件化发展而来
Vue使用模板
react使用JSX
react本身就是组件化
Vue是在MVVM上扩展的
共同点:都支持组件化,都是数据驱动视图
4.hybird
混合,即前端和客户端的混合开发,某些环节也可能涉及到server端
存在价值:可以快速迭代更新(无须app审核,因为hybrid是纯html、css、js代码),体验流畅,减少开发和沟通成本
webview:是app中的一个组件,用于加载h5,一个小型浏览器内核
file协议:加载本地的文件,速度快
http(s)协议:网络加载,速度慢
使用NA(纯后端开发):体验要求极致,变化不频繁(如头条首页)
使用hybrid:体验要求高,变化频繁(如头条的详情页)
使用h5:使用无要求,不常用(如举报,反馈等页面)
hybrid具体实现:
前端做好静态页面(html,css,js),将文件交给客户端
客户端拿到前端静态页面,以文件形式存在app中,客户端在一个webview中,使用file协议加载静态页面(速度快)
5.hybrid更新流程
分版本,有版本号
将静态文件压缩成zip包,上传到服务器
客户端每次启动,都去服务器端检查版本号
如果服务器端版本号大于客户端版本号,就去服务器端下载最新的zip包,下载完成后解压包,然后将现有的文件覆盖
6.hybrid与h5 的区别
hybrid优点:体验好,速度快
缺点:hybrid产品的功能稳定,体验要求高,迭代频繁,适用产品型
h5:单次的运营活动,不常用的功能,适用运营型
7.前端与客户端通讯
JS访问客户端的能力,传递参数和回调函数,客户端通过回调函数返回内容
8.schema协议
前端和客户端通讯的约定
内置上线:看不到schema协议,更安全,速度快