小程序实现数据双向绑定

因为前端用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,是不是很简单。

经验分享 程序员 微信小程序 职场和发展