Vue基本语法(三)

简介: Vue基本语法(三)

十二、v-for遍历数组



当我们有一组数据需要进行渲染时,我们就可以使用v-for来完成。


v-for的语法类似于JavaScript中的for循环。


格式如下:item in items的形式。


我们来看一个简单的案例:


如果在遍历的过程中不需要使用索引值


v-for="movie in movies"


依次从movies中取出movie,并且在元素的内容中,我们可以使用Mustache语法,来使用movie


如果在遍历的过程中,我们需要拿到元素在数组中的索引值呢?


语法格式:v-for=(item, index) in items


其中的index就代表了取出的item在原数组的索引值。


image.png

image.png

image.png

image.png


v-for遍历对象

v-for可以用户遍历对象:

比如某个对象中存储着你的个人信息,我们希望以列表的形式显示出来。


image.png

image.png


组件的key属性


官方推荐我们在使用v-for时,给对应的元素或组件添加上一个:key属性。

为什么需要这个key属性呢(了解)?


这个其实和Vue的虚拟DOM的Diff算法有关系。


这里我们借用React’s diff algorithm中的一张图来简单说明一下:


当某一层有很多相同的节点时,也就是列表节点时,我们希望插入一个新的节点

我们希望可以在B和C之间加一个F,Diff算法默认执行起来是这样的。


即把C更新成F,D更新成C,E更新成D,最后再插入E,是不是很没有效率?

所以我们需要使用key来给每个节点做一个唯一标识


Diff算法就可以正确的识别此节点


找到正确的位置区插入新的节点。


所以一句话,key的作用主要是为了高效的更新虚拟DOM。


image.png

image.png


image.png

image.png


image.png

image.png


image.png

image.png


十三、检测数组更新

因为Vue是响应式的,所以当数据发生变化时,Vue会自动检测数据变化,视图会发生对应的更新。

Vue中包含了一组观察数组编译的方法,使用它们改变数组也会触发视图的更新。


push()
pop()
shift()
unshift()
splice()
sort()
reverse()


image.png

image.png


十四、表单绑定v-model


表单控件在实际开发中是非常常见的。特别是对于用户信息的提交,需要大量的表单。

Vue中使用v-model指令来实现表单元素和数据的双向绑定。


案例的解析:


当我们在输入框输入内容时


因为input中的v-model绑定了message,所以会实时将输入的内容传递给message,message发生改变。


当message发生改变时,因为上面我们使用Mustache语法,将message的值插入到DOM中,所以DOM会发生响应的改变。


所以,通过v-model实现了双向的绑定。


当然,我们也可以将v-model用于textarea元素


image.png

image.png


image.png

image.png


v-model原理

v-model其实是一个语法糖,它的背后本质上是包含两个操作:

1.v-bind绑定一个value属性

2.v-on指令给当前元素绑定input事件


也就是说下面的代码:等同于下面的代码:


<input type="text" v-model="message">


等同于


<input type="text" v-bind:value="message" v-on:input="message = $event.target.value">


image.png

image.png


v-model:radio


当存在多个单选框时


image.png

image.png


v-model:checkbox

复选框分为两种情况:单个勾选框和多个勾选框


单个勾选框:


v-model即为布尔值。

此时input的value并不影响v-model的值。


多个复选框:


当是多个复选框时,因为可以选中多个,所以对应的data中属性是一个数组。

当选中某一个时,就会将input的value添加到数组中。


image.png

image.png


image.png

image.png


v-model:checkbox


复选框分为两种情况:单个勾选框和多个勾选框


单个勾选框:


v-model即为布尔值。

此时input的value并不影响v-model的值。


多个复选框:


当是多个复选框时,因为可以选中多个,所以对应的data中属性是一个数组。

当选中某一个时,就会将input的value添加到数组中。


image.png

image.png


image.png

image.png


v-model:checkbox


复选框分为两种情况:单个勾选框和多个勾选框


单个勾选框:

v-model即为布尔值。

此时input的value并不影响v-model的值。


多个复选框:


当是多个复选框时,因为可以选中多个,所以对应的data中属性是一个数组。

当选中某一个时,就会将input的value添加到数组中。


image.png

image.png


image.png

image.png


v-model:select

和checkbox一样,select也分单选和多选两种情况。

单选:只能选中一个值。


v-model绑定的是一个值。

当我们选中option中的一个时,会将它对应的value赋值到mySelect中

多选:可以选中多个值。


v-model绑定的是一个数组。

当选中多个值时,就会将选中的option对应的value添加到数组mySelects中


image.png

image.png


image.png

image.png


image.png

image.png


值绑定


初看Vue官方值绑定的时候,我很疑惑:what the hell is that?


但是仔细阅读之后,发现很简单,就是动态的给value赋值而已:


我们前面的value中的值,可以回头去看一下,都是在定义input的时候直接给定的。

但是真实开发中,这些input的值可能是从网络获取或定义在data中的。


所以我们可以通过v-bind:value动态的给value绑定值。


这不就是v-bind吗?


这不就是v-bind在input中的应用吗?搞的我看了很久,搞不清他想将什么。

这里不再给出对应的代码,因为会用v-bind,就会值绑定的应用了。


修饰符


lazy修饰符:


默认情况下,v-model默认是在input事件中同步输入框的数据的。


也就是说,一旦有数据发生改变对应的data中的数据就会自动发生改变。

lazy修饰符可以让数据在失去焦点或者回车时才会更新:


number修饰符:


默认情况下,在输入框中无论我们输入的是字母还是数字,都会被当做字符串类型进行处理。


但是如果我们希望处理的是数字类型,那么最好直接将内容当做数字处理。


number修饰符可以让在输入框中输入的内容自动转成数字类型:


trim修饰符:


如果输入的内容首尾有很多空格,通常我们希望将其去除

trim修饰符可以过滤内容左右两边的空格


image.png


image.png



相关文章
|
11天前
|
JavaScript
vue使用iconfont图标
vue使用iconfont图标
74 1
|
21天前
|
JavaScript 关系型数据库 MySQL
基于VUE的校园二手交易平台系统设计与实现毕业设计论文模板
基于Vue的校园二手交易平台是一款专为校园用户设计的在线交易系统,提供简洁高效、安全可靠的二手商品买卖环境。平台利用Vue框架的响应式数据绑定和组件化特性,实现用户友好的界面,方便商品浏览、发布与管理。该系统采用Node.js、MySQL及B/S架构,确保稳定性和多功能模块设计,涵盖管理员和用户功能模块,促进物品循环使用,降低开销,提升环保意识,助力绿色校园文化建设。
|
2月前
|
JavaScript 前端开发 开发者
vue学习第一章
欢迎来到我的博客!我是瑞雨溪,一名热爱前端的大一学生,专注于JavaScript与Vue,正向全栈进发。博客分享Vue学习心得、命令式与声明式编程对比、列表展示及计数器案例等。关注我,持续更新中!🎉🎉🎉
51 1
vue学习第一章
|
2月前
|
JavaScript 前端开发 索引
vue学习第三章
欢迎来到瑞雨溪的博客,一名热爱JavaScript与Vue的大一学生。本文介绍了Vue中的v-bind指令,包括基本使用、动态绑定class及style等,希望能为你的前端学习之路提供帮助。持续关注,更多精彩内容即将呈现!🎉🎉🎉
48 1
|
2月前
|
JavaScript API 开发者
Vue是如何进行组件化的
Vue是如何进行组件化的
|
2月前
|
JavaScript 前端开发 开发者
Vue是如何劫持响应式对象的
Vue是如何劫持响应式对象的
39 1
|
2月前
|
JavaScript 前端开发 API
介绍一下Vue中的响应式原理
介绍一下Vue中的响应式原理
37 1
|
2月前
|
JavaScript 前端开发 开发者
vue 数据驱动视图
总之,Vue 数据驱动视图是一种先进的理念和技术,它为前端开发带来了巨大的便利和优势。通过理解和应用这一特性,开发者能够构建出更加动态、高效、用户体验良好的前端应用。在不断发展的前端领域中,数据驱动视图将继续发挥重要作用,推动着应用界面的不断创新和进化。
|
2月前
|
JavaScript 前端开发 开发者
Vue是如何进行组件化的
Vue是如何进行组件化的
|
2月前
|
存储 JavaScript 前端开发
介绍一下Vue的核心功能
介绍一下Vue的核心功能