微信小程序就是 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小程序了啊!
no,双向数据绑定的模板语法都差不多,
是Vueact
只能说类似vue react这种数据驱动视图的框架 借鉴的 写起来其实挺舒服的
腾讯的技术水平也是很强,早些年它们就在QQ的web版实现一个叫Q的MVVM,能兼容IE低版本,只要在其上面升级一下,就有现在这个Q natve了。它的底层可以大量借鉴react native的

GitHub - imweb/Q.js: fake-MVVM library
你先想好vue 和vue native(weex)是不同的。一个是写网页的,一个是写app的。

那么这个微信小程序,你说他是网页还是app呢。

很明显是网页吧。
1.现在只有一种技术能实现一个app在另一个app内跑起来,那就是虚拟机。微信没说它做了虚拟机。而且即便做了,那卡的叫一个酸爽。

2.如果是native应用,他本身会有一个长时间的编译过程安装过程,你写的小程序有这样的过程吗?

正经回答一下区别,
并没有深入研究,首先它肯定是一个组件化的前端mvvm框架,但是我不确定它是类似react这样的单向数据流还是类似于vue这样的双向绑定。不过本质都区别不大。

不过最大的不同点就是它里面定义了很多可以直接调用微信接口的桥。可以获取微信app的很多信息。
js语法是react风格,实现上感觉像React Native - 开发用js,app跑在native环境。 在render部分自定义了一套模版语言wxml,从组件的名字来看就是照着iOS的组建来的。

目前现有的类似效果的话,Facebook Instant Article有异曲同工之妙 - 在html中定义json元数据,facebook app会将其渲染在native环境,而不是webview.
不是,是吸收了vue的一些优点
明显不是嘛,数据属性更新是这样的
小程序:
Page({   data: {     items: []   },   onLoad: function(options) {     this.setData({       items: [1,2,3]         })   } }) 

Vue:
new Vue({   data: {     items: []   },   mounted () {     this.items = [1, 2, 3]   } }) 

小程序:
<text wx:for="{{items}}">{{item}}</text> 

Vue:
<text v-for="item in items">{{item}}</text> 

恩,还是有点像。
语法相似吧,不能劝说是

一周热门 更多>