双向数据绑定

  • 通过修改标签,例:切换radio、checkbox......都会对绑定的数据有影响
  • 通过事件触发方法,修改data中数据,反向作用于radio、checkbox......

1、v-model

(1)通过绑定input实现双向绑定

</head>
<body>
<div id="app">
<!-- div、input标签同时绑定data中input_value -->
<div>{{input_value}}</div>
<div>{{input_value}}</div>
<input type="text" v-model="input_value"> </div> <script src="../js/vue.js"></script> <script>
new Vue({
el:'#app',
data:{
input_value:'default'
}
}) </script>
</body>

打开前端页面默认显示:

输入框重新输入后显示:

我们可以看出,当输入框的值变动时,同时绑定了“input_value”的div、input标签一起在同时变动,所以是当input框输入时,产生了联动

(2)通过button点击实现双向绑定

<body>
<div id="app">
<!-- div、input标签同时绑定data中input_value -->
<div>{{input_value}}</div>
<input type="text" v-model="input_value">
<!-- 绑定change -->
<input type="button" value="change" @click="change"> </div> <script src="../js/vue.js"></script> <script>
new Vue({
el:'#app',
data:{
input_value:'default'
},
methods:{
change:function () {
this.input_value = 'change value'
}
}
}) </script>
</body>

点击【change】前:

点击【change】后:

(3)通过radio进行双向绑定

<body>
<div id="app">
<div>{{sex}}</div>
// 绑定sex,默认是1,会默认勾选男
<input type="radio" value="1" name="sex" v-model="sex">男
<input type="radio" value="2" name="sex" v-model="sex">女
</div>
<script src="../js/vue.js"></script> <script>
new Vue({
el:'#app',
data:{
input_value:'default',
sex:1
},
methods:{
change:function () {
this.input_value = 'change value'
}
}
}) </script>
</body>

默认显示:

点击【女】时显示:

(4)通过checkbox实现双向数据绑定

  • value配置成 [ ] 用于存储选择的多个数据
<body>
<div id="app">
<div>{{movies}}</div>
//勾选后,会取值到【input标签】的value的值
<input type="checkbox" value="钢铁侠" v-model="movies">钢铁侠
<input type="checkbox" value="复仇者联盟" v-model="movies">复仇者联盟
</div> <script src="../js/vue.js"></script> <script>
new Vue({
el:'#app',
data:{
movies:[]
movies:['钢铁侠']
},
methods:{
}
})
</script>
</body>

默认展示:

勾选后显示:

data中的movies:['钢铁侠']时,默认显示:

我们可以看出,勾选后,input中的value值是同步到了list中

<body>
<div id="app">
<div>{{movie}}</div>
<select v-model="movie">
<option value="钢铁侠">钢铁侠</option>
<option value="复仇者联盟">复仇者联盟</option>
</select>
</div> <script src="../js/vue.js"></script> <script>
new Vue({
el:'#app',
data:{
movie:'',
// movie:'钢铁侠'
},
methods:{
}
})
</script>
</body>

(5)通过下拉框option实现双向绑定

  • value 配置成 str
<body>
<div id="app">
<div>{{movie}}</div>
<select v-model="movie">
<!--下拉框默认显示 -->
<option disabled value="">请选择</option>
<option value="钢铁侠">钢铁侠</option>
<option value="复仇者联盟">复仇者联盟</option>
</select>
</div> <script src="../js/vue.js"></script> <script>
new Vue({
el:'#app',
data:{
// movie:'',
movie:'钢铁侠'
},
methods:{
}
})
</script>
</body>
  • movie值为空时默认显示:

  • movie值为‘钢铁侠’时显示:

  • movie值为空,添加<option disabled value="">请选择</option>后,默认显示:

  • 下拉框操作后显示:

  • 多选下拉框双向绑定
<body>
<div id="app">
<span>请选择你喜欢的电影:{{selectMovie}}</span><br>
<select v-model="selectMovie" multiple size="4">
<!--下拉框默认显示 -->
<option disabled value="">请选择</option>
<option value="变形金刚">钢铁侠</option>
<option value="复仇者联盟">复仇者联盟</option>
<option value="头号玩家">头号玩家</option>
</select>
</div> <script src="../js/vue.js"></script> <script>
new Vue({
el:'#app',
data:{
selectMovie:'',
},
methods:{
}
})
</script>
</body>

默认显示:

选择后显示:

  • 动态值绑定

<body>
<div id="app">
<span>请选择你喜欢的电影:{{Movie}}</span><br>
//"Movie"双向数据绑定”,和data中“Movie”进行了关联
<select v-model="Movie">
<!--下拉框默认显示 -->
<option disabled value="">请选择</option>
<!--循环后option中的值为:{"name":"变形金刚","id":1}等3个;value:不加v-bing取值的是字符串,加上后,才会是取值的option的id-->
<option v-for="option in options" v-bing:value="option.id">{{option.name}}</option>
</select>
</div> <script src="../js/vue.js"></script> <script>
new Vue({
el:'#app',
data:{
Movie:'',
// id:可以理解为后台对“变形金刚”录入的主键ID
options:[{"name":"变形金刚","id":1},{"name":"复仇者联盟","id":2},{"name":"头号玩家","id":3}],
},
methods:{
}
})
</script>
</body>

默认显示:

选择后显示:


最新文章

  1. K-Means聚类和EM算法复习总结
  2. c++引用总结
  3. SSE技术详解:一种全新的HTML5服务器推送事件技术
  4. Windows cmd 颜色,字体,color font set up
  5. Oracle NoLogging Append 方式减少批量insert的redo_size
  6. SQL用法总结
  7. POJ 1686 Lazy Math Instructor (模似题+栈的运用) 各种坑
  8. MySQL 通配符学习小结
  9. Could not open ServletContext resource [/WEB-INF/applicationContext.xml]解决方法
  10. iOS_SN_BlueTooth (二)iOS 连接外设的代码实现
  11. 使用SSIS对Dynamics CRM 系统进行数据迁移
  12. # 20175333曹雅坤《Java程序设计》第七周学习总结
  13. 爬虫下载校花网美女信息-lxml
  14. 网络操作基础(one)
  15. leetCode58. 最后一个单词的长度
  16. AX_CreateAndPostPurch
  17. Mysql授权root用户远程登录
  18. 实验二:Linux下Xen环境的安装
  19. 一个价格,两份大礼!Mockplus X MindManager限时联合大促
  20. JDK8字符串拼接的正确姿势

热门文章

  1. mysql主从故障跳过错误
  2. CVE-2023-25813 漏洞
  3. [iOS]获取地理位置信息
  4. 教你如何自己搭环境部署华为FusionCompute虚拟化系统
  5. Jvm 相关记录
  6. vue element ui table 自动无限滚动组件
  7. update_base_x.txt
  8. Installing Jupyter
  9. Vue3中使用JSX简明语法
  10. linux扩展与缩减lv大小