微信小程序就是 vue 吗? 财富值8

2016-11-06 18:35发布

微信小程序就是 Vue 吗?
10条回答
还是差挺多的,相比“vue native”的话,能想到的:
  1. 微信小程序是单向绑定。而vue是双向(微信小程序没有提供v-model的等价指令,仅能通过事件对象读取用户输入)
  2. 微信小程序数据绑定支持的表达式十分简单(即双大括号中的表达式),目前只支持这四种表达式:算数表达式、关系表达式、字符串连接表达式、三元表达式。vue则是全功能的JS表达式。体验上差别比较明显的在于是否支持函数/方法调用表达式
  3. 微信小程序在初始化之后,再对原来的数据对象进行任何更改,都始终不会生效!只能手动调用setData接口明确指明同步哪些键/值至视图层才会触发更新。而vue则是对数据对象进行了监听,只要有更改就可以并且会立即触发视图层的更新。
  4. 事件冒泡的阻止上,微信小程序只能通过bindtap/bindxxx与catchtap/catchxxx两种不同形式的事件绑定属性在监听时即决定是否阻止事件冒泡。而vue与传统web一样,可以在事件回调中运行时调用接口阻止继续冒泡。

第1条无可厚非,微信小程序没有想着做一套完整的mvvm,只是提供“数据渲染”而已。
而导致第2~4条中现象的本质原因是:
  • 微信小程序的JS逻辑层与视图层分散在两个不同的上下文环境中(JS逻辑跑在JsCore中,视图层的渲染包括模板渲染、样式应用、事件派发却都在native环境中)。所以数据对象(view-model)在两层间没有共享、并且同步通信的成本太高

不过这些区别都不算什么,毕竟能在微信上开发native小程序了啊!

一周热门 更多>