深入理解 Vue 中的指针操作(二)

文章目录

    • ☘️引言
    • ☘️基本用法
      • 🍂v-for指令
      • 🍂v-model指令
        • 🌱v-model适用表单控件
        • 🌱修饰符
          • 🧄.lazy 修饰符
          • 🧄.number 修饰符
          • 🧄.trim 修饰符
    • ☘️结论

☘️引言

Vue.js 是一款非常流行且功能强大的前端框架,它以其响应式的数据绑定和组件化的开发方式赢得了众多开发者的喜爱。而在 Vue.js 中,指针操作是一个非常重要的概念,它能够帮助我们更好地处理和操作数据。本篇博客将深入探讨 Vue 中的指针操作,分享一些实用的技巧和注意事项。

续  ➡ 深入理解 Vue 中的指针操作(一)

☘️基本用法

🍂v-for指令

Vue 的 v-for 指令用于渲染列表和集合数据。它的语法如下:

<div v-for="(item, index) in items" :key="item.id">{{ item.name }}</div>

其中,items 表示要遍历的数组或对象;item 和 index 是当前遍历项的值和索引;:key 表示为每个节点指定一个唯一的 key 值,以提高性能。item.id 可以换成其他具有唯一性的属性。

除了以上语法外,还可以使用 v-for 的简写方式:

<div v-for="item in items">{{ item.name }}</div>

这等效于 v-for=“(item, index) in items”,只是没有了索引变量。

在 v-for 中,还可使用特殊的别名 $index 来代表当前遍历的元素的索引值:

<div v-for="(item, $index) in items">{{ $index }}. {{ item.name }}</div>

在 v-for 的 items 数组或对象发生变化时,Vue 会自动重新计算视图,并进行最小化渲染,以提高性能。

代码示例:
以下是一个使用 v-for 渲染数组的例子:

<div id="app"><ul><li v-for="item in items" :key="item.id">{{ item.name }}</li></ul>
</div>
new Vue({el: '#app',data: {items: [{ id: 1, name: 'Apple' },{ id: 2, name: 'Banana' },{ id: 3, name: 'Orange' }]}
});

运行该示例,会在页面上展示一个包含三个水果列表项的无序列表。
运行结果:
在这里插入图片描述

还可以使用 v-for 渲染对象,例如:

<div id="app"><ul><li v-for="(value, key) in object" :key="key">{{ key }}: {{ value }}</li></ul>
</div>
new Vue({el: '#app',data: {object: {a: 'Apple',b: 'Banana',c: 'Orange'}}
});

该示例会在页面上展示一个包含三个键值对的列表项。
运行结果:
在这里插入图片描述
注意:为了给 Vue 一个提示,以便它能跟踪每个节点的身份,从而重用和重新排序现有元素,你需要为每项提供一个唯一 key

<div v-for="item in items" v-bind:key="item.id"><!-- 内容 -->
</div>

🍂v-model指令

model 是 Vue 中常用的指令之一,用于将表单元素的值和 Vue 实例中的数据绑定起来,实现双向数据绑定。

使用 v-model 的语法如下:

<input v-model="message">

其中,message 是 Vue 实例中的数据,可以是 data、computed 或 props 中的属性。

对于单选框和复选框等表单元素,v-model 还可以接受一个参数,如:

<input type="checkbox" v-model="checked">

对于单选框,checked 可以是布尔类型的数据;对于多选框,checked 可以是数组类型的数据。

在使用 v-model 绑定表单元素的值时,Vue 实例中的数据并不会立即更新,而是在表单元素的值发生变化并触发 input 事件时才会更新。如果需要在表单元素失去焦点时更新数据,则可以使用 v-model.lazy 修饰符。

另外,对于某些输入类型,例如 number、range 等,会将输入的字符串自动转换为对应的数据类型。如果需要绑定的数据不是字符串,可以使用 v-bind:value 显式地绑定输入框的值。

以下是 v-model 的一个示例:

<div id="app"><input v-model="message"><p>{{ message }}</p>
</div>
new Vue({el: '#app',data: {message: ''}
});

运行该示例,在输入框中输入文本,下方会实时显示输入的文本。
运行结果:
在这里插入图片描述

🌱v-model适用表单控件

v-model 指令适用于以下表单控件:

➡:包括文本输入框、密码输入框、复选框、单选框等。
➡:文本域输入框。
➡:下拉选择框。
自定义组件:如果自定义组件在内部使用了合适的输入控件,并且实现了 value 属性和 input 事件,那么也可以使用 v-model 来进行数据的双向绑定。
例如,可以使用 v-model 指令绑定以下表单控件:

<div id="app"><input type="text" v-model="username"><input type="password" v-model="password"><input type="checkbox" v-model="rememberMe"><textarea v-model="message"></textarea><select v-model="selectedOption"><option value="option1">Option 1</option><option value="option2">Option 2</option><option value="option3">Option 3</option></select>
</div>
new Vue({el: '#app',data: {username: '',password: '',rememberMe: false,message: '',selectedOption: ''}
});

在上述示例中,v-model 指令分别绑定了文本输入框、密码输入框、复选框、文本域输入框和下拉选择框。在 Vue 实例中,可以通过相应的数据属性(username、password、rememberMe、message、selectedOption)来获取和更新表单控件的值

🌱修饰符

在 Vue 的 v-model 指令中,有几个常用的修饰符可以用来修改默认行为:

🧄.lazy 修饰符

默认情况下,v-model 在输入框的值变化时会即时更新绑定的数据。但是在某些情况下,我们希望在输入框失去焦点时再进行更新。使用 .lazy 修饰符可以实现延迟更新。例如:

<input v-model.lazy="message">

这样,在输入框内输入内容并按下 Enter 键或将输入框失去焦点时,message 数据才会更新。

🧄.number 修饰符

默认情况下,v-model 绑定的数据会作为字符串处理。如果我们需要将输入框的值转换为数值类型,可以使用 .number 修饰符。例如:

<input type="number" v-model.number="count">

通过使用 .number 修饰符,输入框的值会被自动转换为数值类型。

🧄.trim 修饰符

默认情况下,v-model 绑定的数据对输入框的值不进行任何处理。如果我们希望去除输入框值的首尾空格,可以使用 .trim 修饰符。例如:

<input v-model.trim="text">

这样,输入框中的字符串将自动去除首尾空格。

修饰符可以同时使用,例如:

<input type="number" v-model.lazy.number.trim="age">

上述示例中,输入框的值会被自动转换为数值类型,并在失去焦点时进行更新,同时也会去除输入框值的首尾空格。

除了上述三个修饰符外,Vue 还提供了其他一些修饰符,如 .lazy, .number, .trim, .debounce, .once 等,可以根据需要选择使用。

☘️结论

在 Vue 中,指针操作是实现响应式数据绑定的关键之一。通过合理地使用指针操作,可以轻松地实现数据的读取、修改和监听,从而创建出更加动态和交互的前端应用。同时,在使用指针操作时需要注意一些细节和注意事项,以确保代码的正确性和性能的优化。


🏫博客主页:魔王-T

🥝大鹏一日同风起 扶摇直上九万里

❤️感谢大家点赞👍收藏⭐评论✍️


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/184055.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Golang数据类型(数组)

数组重要概念 数组&#xff08;Array&#xff09;是一种非常常见的数据类型&#xff0c;几乎所有的计算机编程语言中都会用到它 在Go语言中&#xff0c;数组有如下的特点&#xff1a; 数组里的元素必须全部为同一类型&#xff0c;要嘛全部是字符串&#xff0c;要嘛全部是整数…

onelist能让alist聚合网盘拥有海报墙

什么是 onelist &#xff1f; onelist 是一个类似 emby 的专注于刮削 alist 聚合网盘形成影视媒体库的程序。 主要解决以下痛点&#xff1a; alist 挂载云盘后能在网页端看视频&#xff0c;却没有分类&#xff0c;没有海报墙&#xff1b;使用 webdav 挂载本地后&#xff0c;用…

最大熵模型

1. 最大熵原理 学习概率模型时&#xff0c;在所有可能的概率模型(分布)中&#xff0c;熵最大的模型是最好的模型。 假设离散随机变量X的概率分布是P(X)&#xff0c;则其熵为 且满足0<H(P)<logN 当且仅当X的分布是均匀分布时右边的等号成立&#xff0c;即当X服从均匀分布…

卷积神经网络(CNN)注意力检测

文章目录 一、前言二、前期工作1. 设置GPU&#xff08;如果使用的是CPU可以忽略这步&#xff09;2. 导入数据3. 查看数据 二、数据预处理1.加载数据2. 可视化数据4. 配置数据集 三、调用官方网络模型四、设置动态学习率五、编译六、训练模型七、模型评估1. Accuracy与Loss图2. …

外汇天眼:外汇市场中的“双向交易”是什么意思?

说到外汇市场&#xff0c;总免不了提到它双向交易的优势&#xff0c;很多新手会对这一点有所疑问&#xff0c;今天我们就帮大家解决这一个疑问。 何谓双向交易&#xff1f; 金融市场上&#xff0c;交易者最常接触到的股票&#xff0c;多属于单向交易。 单向交易的模式便是「先…

1145. 北极通讯网络(Kruskal,并查集维护)

北极的某区域共有 n 座村庄&#xff0c;每座村庄的坐标用一对整数 (x,y) 表示。 为了加强联系&#xff0c;决定在村庄之间建立通讯网络&#xff0c;使每两座村庄之间都可以直接或间接通讯。 通讯工具可以是无线电收发机&#xff0c;也可以是卫星设备。 无线电收发机有多种不…

MySQL之redo log

聊聊REDO LOG 为什么需要redolog&#xff1f; 那redolog主要是为了保证数据的持久化&#xff0c;我们知道innodb存储引擎中数据是以页为单位进行存储&#xff0c;每一个页中有很多行记录来存储数据&#xff0c;我们的数据最终是要持久化到硬盘中&#xff0c;那如果我们每进行…

MySQL修改已存在数据的字符集

在实际应用中&#xff0c;如果一开始没有正确的设置字符集&#xff0c;在运行一段时间以后&#xff0c;才发现当前字符集不能满足要求&#xff0c;需要进行调整&#xff0c;但又不想丢弃这段时间的数据&#xff0c;这个时候就需要修改字符集。 在MySQL设置默认字符集和校对规则…

【探索Linux】—— 强大的命令行工具 P.18(进程信号 —— 信号捕捉 | 信号处理 | sigaction() )

阅读导航 引言一、信号捕捉1. 内核实现信号捕捉过程2. sigaction() 函数&#xff08;1&#xff09;函数原型&#xff08;2&#xff09;参数说明&#xff08;3&#xff09;返回值&#xff08;4&#xff09;函数使用 二、可重入函数与不可重入函数1. 可重入函数条件2. 不可重入函…

Pytorch模型编译报错 UserWarning: (Resize(), RandomResizedCrop(), etc.)——解决办法

1、问题描述 使用Pytorch训练模型时&#xff0c;编译报错&#xff1a; UserWarning: The default value of the antialias parameter of all the resizing transforms (Resize(), RandomResizedCrop(), etc.) will change from None to True in v0.17, in order to be consis…

linux socket套接字

文章目录 socket流socket&#xff08;TCP&#xff09;数据报socket&#xff08;UDP&#xff09; 讨论 socket 所谓套接字&#xff0c;就是对网络中不同主机上的应用程序之间进行双向通信的端点的抽象。一个套接字就是网络上进程通信的一端&#xff0c;套接字提供了应用层进程利…

【内网安全】搭建网络拓扑,CS内网横向移动实验

文章目录 搭建网络拓扑 ☁环境CS搭建,木马生成上传一句话&#xff0c;获取WebShellCS上线reGeorg搭建代理&#xff0c;访问内网域控IIS提权信息收集横向移动 实验拓扑结构如下&#xff1a; 搭建网络拓扑 ☁ 环境 **攻击者win10地址&#xff1a;**192.168.8.3 dmz win7地址&…

VSCode 代码调试

断点调试&#xff08;debug&#xff09;&#xff1a; 指在程序的某一行设置一个断点&#xff0c;调试时&#xff0c;程序运行到这一行就会停住&#xff0c;然后你可以一步一步往下调试&#xff0c;调试过程中可以看各个变量当前的值&#xff0c;出错的话&#xff0c;调试到出错…

PostgreSQL-SQL联表查询LEFT JOIN 数据去重复

我们在使用left join联表查询时&#xff0c;如果table1中的一条记录对应了table2的多条记录&#xff0c;则会重复查出id相同的多条记录。 1、解决方法一 SELECT t1.* FROM table1 t1 LEFT JOIN table2 t2 ON t1.id t2.tid 第一种方法我们发现还是有重复数据 2、解决方法二…

无限移动的风景 css3 动画

<style>*{margin:0;padding:0;/* box-sizing: border-box; */}ul{list-style: none;}#nav{width:900px;height:100px;border:2px solid rgb(70, 69, 69);margin:100px auto; overflow: hidden;}#nav ul{animation:moving 5s linear infinite;width:200%; /*怎么模拟动画…

【数据挖掘】国科大刘莹老师数据挖掘课程作业 —— 第二次作业

Written Part 1. 给定包含属性&#xff5b;Height, Hair, Eye&#xff5d;和两个类别&#xff5b;C1, C2&#xff5d;的数据集。构建基于信息增益&#xff08;info gain&#xff09;的决策树。 HeightHairEyeClass1TallBlondBrownC12TallDarkBlueC13TallDarkBrownC14ShortDark…

Java实现简单的王者荣耀游戏

一、创建新项目 首先创建一个新的项目&#xff0c;并命名为wangzherongyao。 其次在飞翔的鸟项目下创建一个名为img的文件夹用来存放游戏相关图片。详细如下图&#xff1a; 二、游戏代码 1、创建怪物类 1.bear&#xff1a; package beast;import wangzherogyao.GameFrame;…

a-table:表格组件常用功能记录——基础积累2

antdvue是我目前项目的主流&#xff0c;在工作过程中&#xff0c;经常用到table组件。下面就记录一下工作中经常用到的部分知识点。 a-table&#xff1a;表格组件常用功能记录——基础积累2 效果图1.table 点击行触发点击事件1.1 实现单选 点击事件1.2 实现多选 点击事件1.3 实…

知识社区问答平台源码系统 开源的知识问答平台 附带完整的搭建教程

互联网的快速发展&#xff0c;人们对于知识的需求越来越高。知识社区问答平台源码系统是一款基于开源框架搭建的知识问答平台&#xff0c;旨在帮助人们快速、准确地获取所需知识&#xff0c;提高学习效率。 以下是部分代码示例&#xff1a; 系统特色功能一览&#xff1a; 1.知…

什么是消息队列

什么是消息队列 MQ(message queue)&#xff0c;从字面意思上看&#xff0c;本质是个队列&#xff0c;FIFO 先入先出队列&#xff0c;只不过队列中存放的内容是 message 而已&#xff0c;还是一种跨进程的通信机制&#xff0c;用于上下游传递消息。在互联网架构中&#xff0c;M…