小程序实现数据双向绑定
因为前端用vue习惯了,vue中有很多特性让开发变得十分方便。如v-mode实现数据的双向绑定。虽然小程序中没有自带的数据双向绑定,但利用bindinput、bindchange也能实现数据双向绑定。
案例:
效果展示:
输入值前 输入值后
源码
wxml
<view> <form> <view> <label>用户名:{ {user.uname}}</label> <input name="uname" bindinput="bindInput" type="text" placeholder="请输入用户名" data-item="uname" /> </view> <view> <label>年龄:{ {user.age}}</label> <input type="text" placeholder="请输入年龄" bindinput="bindInput" data-item="age" /> </view> <view> <label>性别:{ {user.sex}}</label> <radio-group bind data-item="sex" bindchange="bindInput"> <radio value="男">男</radio> <radio value="女">女</radio> </radio-group> </view> <view> <button form-type="submit" type="primary">提交</button> </view> </form> </view>
js
data: { user:{ uname:, age:, sex: } }, bindInput: function(e){ let item=e.currentTarget.dataset.item; //在每个input绑定不同的item作为标识 const user=this.data.user user[item]=e.detail.value //对象的属性名称是动态判定时,通过方括号标记访问 this.setData({ user }) },
OK,是不是很简单。