这个框架是腾讯内部出的一个类MVVM的小程序开发框架。大致上来讲语法是类VUE的,因此若是有VUE开发经验的话迁移成本会低一些。至于具体的怎么使用我就不赘言了,有问题查文档(官方文档)html
我虽然尚未在实际项目中完整开发过一个APP,但本身看着文档敲着DEMO再道听途说一下也都知道,小程序是有不少限制的,小项目可能以为无所谓,可业务稍微复杂一点,写起来和维护起来都是很是蛋疼的。主要表如今如下几个方面:vue
咋一看wepy也是组件化开发的,.wpy的组件和.vue的文件是很相似的,但仍是存在不少语法上的却别的。例如在VUE的for循环中能够将下标直接传入方法中
```
git
而在wepy中是对于普通循环来讲是基本沿用了小程序原生的模式,而且传值都要带上{{}}<view wx:for="{{ items }}" @tap="smFun({{index}})">{{ item }}
<view class="tab {{ isTrue ? 'active' : '' }}"></view>
<div class="tab" :class="{'active': isTrue}"></div>
固然这两者之间还有不少不一样的地方,这里就不一一列举了,整体来讲仍是以为vue写法更加方便一些,大致上来讲wepy在语法上只是对原生小程序的语法作了一次再封装而已github
wepy组件之间传值大致上是沿用的vue的模式,尤为是vue1.0版本以前的模式,基本上来讲父子组件之间通讯就是子组件用props接收参数,而后子组件用$emit传递给父组件。值得一提的是wepy新增了一个$invoke方法用于组件之间通讯。编程
export default class Com extends wepy.page { props = { xxx: String } onload () { console.log(xxx) } }
// parent.wpy <child :title="parentTitle" :syncTitle.sync="parentTitle" :twoWayTitle="parentTitle"></child> data = { parentTitle: 'p-title' }; // child.wpy props = { // 静态传值 title: String, // 父向子单向动态传值 syncTitle: { type: String, default: 'null' }, twoWayTitle: { type: Number, default: 'nothing', twoWay: true } }; onLoad () { console.log(this.title); // p-title console.log(this.syncTitle); // p-title console.log(this.twoWayTitle); // p-title this.title = 'c-title'; console.log(this.$parent.parentTitle); // p-title. this.twoWayTitle = 'two-way-title'; this.$apply(); console.log(this.$parent.parentTitle); // two-way-title. --- twoWay为true时,子组件props中的属性值改变时,会同时改变父组件对应的值 this.$parent.parentTitle = 'p-title-changed'; this.$parent.$apply(); console.log(this.title); // 'c-title'; console.log(this.syncTitle); // 'p-title-changed' --- 有.sync修饰符的props属性值,当在父组件中改变时,会同时改变子组件对应的值。 }
说实话,我也是最近入职了新公司才开始接触wepy这个框架,目前答题使用了两周左右了,记录一些工做中遇到的坑,留着之后查阅,有相同经历的小伙伴也能够参考一下或者提出更好的解决方案。以后遇到新的坑会继续整理更新的……小程序
参考文章:微信小程序