宝哥软件园

谈个人对vue中复选框数据绑定v型指令的理解

编辑:宝哥软件园 来源:互联网 时间:2021-08-28

Vue.js为开发人员提供了很多方便的指令,其中v-model常用于表单的数据绑定。

以下是最常见的例子:

div id=' myapp ' input type=' text ' v-model=' msg ' br { { msg } }/div js中的数据初始化数据

脚本src=' http:/js/vue . js '/script script type=' text/JavaScript ' new vue({ El : ' # myapp ',data () {return {msg3360' hello'}),浏览器呈现:

从上面可以看出,v-model对应的数据是输入的值属性

但是如果是复选框,就会有一点问题

div id=' myapp ' input type=' checkbox ' v-model=' msg ' br { { msg } }/div不设置复选框的value属性

在js中,数据是“”:

Newvue ({el:' # myapp ',data () {return {msg:''}}),浏览器呈现:

选中为真,取消选中为假

如果数据中的消息被初始化为真,则默认情况下会选中复选框

在这里,人们将在复选框中有真或假的值,这似乎与选中的属性有关

对不对?我们再举一个例子:

div id='myApp '输入类型='checkbox' v-model='msg '值='angular'angularbrinput类型='checkbox' v-model='msg '值=' react 'reactbrinput类型='checkbox' V-model=' msg '值=' vue' vuebr {{msg}}/div我们设置了三个复选框并分别设置了值属性

还在js

Newvue ({el:' # myapp ',data () {return {msg:''}}),浏览器:

可以看出,有了value属性,v-model对应的msg仍然为真或假;

那么之前的猜测正确吗?

让我们稍微改变一下代码。通常,v-model对应字符串。这次我们将其初始化为空数组[]

Data() {return {msg:[]}},其他东西不变,仍然是上面三个复选框

神奇的一幕出现了

在浏览器中:

如您所见,无论谁被选中,其值都将被添加到数组中。

并且数据是双向绑定的,所以当我们在初始化数据数组中给出上述值时,默认情况下会选中相应的复选框

data(){ return { msg :[' vue ']} },

浏览器呈现:

因此,我们可以看到checkbox中v-model对应的值仍然是值,但是为什么之前是真的还是假的呢?

我在网上搜索了很久,也没有找到特别明确的解释,所以在这里表达一下我的理解:

1.checkbox与普通输入相同。点击勾选实际上就是输入值,输入值会改变勾选的属性,所以会被选中。当v-model对应于“字符串”时,它会将“字符串”解析为布尔值,如果v-model对应于值或true,则会选中复选框。

2.当v-model对应“数组”时,打勾表示已经选中,相当于赋值给,相当于有值,没有值属性时,打勾相当于赋值(' null ')给value——v-model('null '为字符串);当有值属性时,打勾相当于给value——v-model赋值(value)。请注意,数据是双向绑定的,因此数组中的值对应于value——v-model of checkbox。

3.在处理表单时,v-model通常是对应的字符串,所以处理checkbox的v-model,利用对应的布尔值来控制检查。

以上就是本文的全部内容。希望对大家的学习有帮助,支持我们。

更多资讯
游戏推荐
更多+