小程序优势:
1.即开即走,不需要下载app,可以通过微信直接打开更加方便快捷 基于双线程模式 可以快速将数据渲染呈现
2.天然流量优势,依赖于微信这个大流量平台
3.轻量级 代码体积要求为2M以内 性能更加突出
4.相比于app的开发 微信宿主提供api 可以实现和app相似的功能 开发相比于app简单
区别:
data修改方式不同
同react/vue一样并不能直接操作 DOM,而是通过状态status更新去同步,与vue的双向绑定有区别,微信小程序需要使用this.setData({key:value})去修改data,直接修改this.data将不会更新。这对比vue来说 使用起来会更加复杂。
宿主不同
为了安全考虑,微信小程序是与微信是一种宿主关系,我们写了代码后最终经过编译出现在了微信。类似于iframe,iframe最大程度保留了子页面的功能,一旦子页面通过代码操作微信的获取,对于微信来说是很危险的,所以微信方面为了安全性考虑禁止用户操作dom。web worker不允许操作dom,小程序为了安全考虑也使用了类似web worker的方式去渲染逻辑。
模型/通讯方式方式不同
微信小程序采用双线程模型,与浏览器线程不同。
微信小程序与vue/react渲染-逻辑直接通讯不同,在渲染与逻辑线程中,增加了一个native进行转发,并不直接通讯。
小程序采用了 Hybrid-混合的架构模式:使用 Webview 渲染 UI、使用类似Web Worker 的独立线程运行逻辑。