小轮子:无需重构,向下兼容,在既有项目中用vue的方式开发微信小程序
simple-wxmp-vueify
介绍
既有项目无法重构,但想在某些页面的JS中使用vue的语法?不想手动调用小程序内的setData()?这个库可能帮你解决一些问题。
特性
使用ES6的proxy实现对page.data的代理
- 支持在代码中使用this.xxx表示data属性
- 支持计算属性
- 支持响应式更新视图,不用手动setData
使用Demo
欢迎提issue或pr :)
项目地址
$ git clone https://github.com/qk44077907/simple-wxmp-vueify.git
之后文件夹拷贝至项目根目录
//你的路径 import '/simple-wxmp-vueify/index.js' Page({ reactive: true,//在初始化页面时传入此字段,库将自动把页面转化为响应式 data: { questionName: '', questionDesc: '', questionList: [ { content: '', }, { content: '', }, ], questionTypeList: ['单选', '多选'], questionTypeIndex: 0, }, computed: { questionType: function () { return this.questionTypeList[this.questionTypeIndex] } }, addItem() { this.questionList.push({ content: '', }) }, removeItem(e) { let index = e.target.dataset.index if (this.questionList.length <= 2) { return } this.questionList.splice(index, 1) } });
wxml模板
<view class="question-panel"> <view class="item" wx:for="{{questionList}}" wx:for-item="question" wx:for-index="index" wx:key="name" > <!-- 注意双向绑定更新需要在对应元素上指定data-path属性 代表需要更新的属性相对data的路径,使用 '.'拼接 如 'questionList.0.content' --> <textarea bindinput="updateVM" data-path="questionList.{{index}}.content" type="text" placeholder="{{'选项'+(index+1)}}" placeholder-style="font-size:30rpx" maxlength="40" value="{{question.content}}" auto-height > </textarea> <view class="icon" bindtap="removeItem" data-index="{{index}}" > 删除 </view> <view class="icon" bindtap="addItem" data-index="{{index}}" > 添加 </view> </view> </view>
TODO
- watch功能
相关推荐
jieq 2020-11-09
ZZZhangbingyi 2020-08-26
haixianTV 2020-08-15
Develop 2020-06-25
郴州小程序 2020-06-13
huningjun 2020-06-12
zuoliangzhu 2020-06-11
hgzhang 2020-06-04
浪味仙 2020-06-03
powderhose 2020-06-02
cdkey 2020-05-29
戴翔的技术 2020-05-27
郴州小程序 2020-05-26
cdkey 2020-05-26
sucheng 2020-05-25
newhappy 2020-05-16
cbao 2020-05-12
cbao 2020-04-26
草根工程师 2020-03-27