明天小编和大家一起在 Vue 的路上摸索,要实现的性能是这样的。现将默认 数组内的渲染到页面上,而后点击按钮之后,将文本框内的数据增加到列表上,成果如下。
源码是这样的,上面我就联合代码中的正文来阐明一下外围的代码
Vue.createApp({data(){
return {list:['item1','item2','item3','item4'], // 绑定 v -for 循环的列表
inputVal:"" // 绑定文本框的内容
}
},
methods:{handleAddItem(){ // 绑定按钮的点击事件
this.list.push(this.inputVal) // 批改绑定的数据,在数组中减少数据
this.inputVal = '' // 对绑定的值从新赋值,清空文本框内的值
}
},
template:`
<div>
// 通过 v -model 绑定表单元素的值,也就是常说的数据双向绑定
<input v-model="inputVal" />
// v-on:click 是绑定按钮的点击事件,能够通过 @click 语法糖来代替
<button v-on:click="handleAddItem"> 减少 </button>
<ul>
// v-for 和上一篇文章的 v -if 相似,都叫做指令
// v-for 用作数据的循环
// v-for 能够承受两个参数,第一个是数组中元素,第二个元素是下标
// 能够通过 in 和 of 两个关键字链接绑定的变量
// 不倡议将 v -if 和 v -for 用在同一个元素上。非要用能够在里面嵌套 div 或者其余元素
// 依据官网文档,同时应用的时候,v-for 的优先级会高于 v -if
<li v-for="(item,index) of list">{{item}}</li>
</ul>
</div>
`
}).mount('#root')
之前有过根底或者仔细的小伙伴会发现,小编在应用 v -for 的时候,前面用的是 of 关键字,那对于 v -for 来说,尽管官网文档给的是 in,那么 of 和 in 有什么不一样呢?
在原生 js 中,对于循环来说,能够应用关键字 in 和 for 来循环,失去的后果是不一样的,就像这样
let arr = [{name:'lilei',age:12},
{name:'hanmeimei',age:20}
]
for(let item of arr){console.log(item) // {{name:'lilei',age:12} {name:'hanmeimei',age:20}
}
for(let key in arr){console.log(item) // 0 1
}
小编在查问了一些材料后,失去这样的论断,遍历数组的时候,举荐应用 of,语法为 (item,index)。在遍历对象的时候,举荐应用 in,语法为(item,name,index) 上面是实例
DATA:
list:[{name:'1'},
{name:'2'},
{name:'3'},]
html:
<div class="items" v-for='(item,name,index) of list'>{{item}}->{{name}}->{{index}}</div>
<div class="items" v-for='(item,name,index) in list'>{{item}}->{{name}}->{{index}}</div>
// 输入后果如下
{"name": "1"}->0->
{"name": "2"}->1->
{"name": "3"}->2->
{"name": "1"}->0->
{"name": "2"}->1->
{"name": "3"}->2->
DATA:
listObject:{
name:'soho',
age:25,
class:1909,
grade:3
}
html:
<div class="items" v-for='(item,name,index) of listObject'>{{item}}->{{name}}->{{index}}</div>
<div class="items" v-for='(item,name,index) in listObject'>{{item}}->{{name}}->{{index}}</div>
// 输入后果为
soho->name->0
25->age->1
1909->class->2
3->grade->3
soho->name->0
25->age->1
1909->class->2
3->grade->3
参考文章:
https://vue3js.cn/
https://www.cnblogs.com/Scoob…
大家还能够扫描二维码,关注我的微信公众号,蜗牛全栈