這個框架是騰訊內部出的一個類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這個框架,目前答題使用了兩週左右了,記錄一些工做中遇到的坑,留着之後查閱,有相同經歷的小夥伴也能夠參考一下或者提出更好的解決方案。以後遇到新的坑會繼續整理更新的……小程序
參考文章:微信小程序