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

文章目录

    • ☘️引言
    • ☘️基本用法
      • 🍂v-for指令
      • 🍂v-model指令
        • 🌱v-model适用表单控件
    • ☘️结论

☘️引言

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


🏫博客主页:魔王-T

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

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


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

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

相关文章

[node] Node.js 中Stream流

[node] Node.js 中Stream流 什么是 Stream流操作从流中读取数据写入流管道流链式流 什么是 Stream Stream 是一个抽象接口&#xff0c;Node 中有很多对象实现了这个接口。例如&#xff0c;对http 服务器发起请求的request 对象就是一个 Stream&#xff0c;还有stdout&#xff…

ExoPlayer - Failed to initialize OMX.qcom.video.decoder.avc

人莫鉴于流水而鉴于止水&#xff0c;唯止能止众止 1. 背景 使用ExoPlayer&#xff0c;我不信你没遇到过这个问题&#xff1a; java.lang.IllegalArgumentException: Failed to initialize OMX.qcom.video.decoder.avc 详细内容如下图所示&#xff1a; 2. MediaCodec(解码器) …

MySQL三大日志详细总结(redo log undo log binlog)

MySQL日志 包括事务日志&#xff08;redolog undolog&#xff09;慢查询日志&#xff0c;通用查询日志&#xff0c;二进制日志&#xff08;binlog&#xff09; 最为重要的就是binlog&#xff08;归档日志&#xff09;事务日志redolog&#xff08;重做日志&#xff09;undolog…

TCP 连接建立

1&#xff1a;TCP 三次握手过程是怎样的&#xff1f; 客户端和服务端都处于 CLOSE 状态&#xff0c;服务端主动监听某个端口&#xff0c;处于 LISTEN 状态 第一次握手&#xff1a;客户端带着序号和SYN为1&#xff0c;把第一个 SYN 报文发送给服务端&#xff0c;客户端处于 SYN-…

【动态规划】LeetCode-70.爬楼梯

&#x1f388;算法那些事专栏说明&#xff1a;这是一个记录刷题日常的专栏&#xff0c;每个文章标题前都会写明这道题使用的算法。专栏每日计划至少更新1道题目&#xff0c;在这立下Flag&#x1f6a9; &#x1f3e0;个人主页&#xff1a;Jammingpro &#x1f4d5;专栏链接&…

unity UI特效遮罩

using System.Collections; using System.Collections.Generic; using UnityEngine;/**UI特效遮罩 1.需要将ScrollRect 的遮罩Mask 换为 2D Mask2.将特效的Render里面的 Masking 设置为*/ public class UIParticleMaskControll : MonoBehaviour {// Start is called before …

C库函数—sprintf

函数介绍&#xff1a; C 库函数 int sprintf(char *str, const char *format, ...) 发送格式化输出到 str 所指向的字符串。 参数&#xff1a; str -- 这是指向一个字符数组的指针&#xff0c;该数组存储了 C 字符串。format -- 这是字符串&#xff0c;包含了要被写入到字符串 …

Intellij idea 内存不够用了,怎么处理?

目录 如何判断内存不够用了 下面演示一下如何开启内存指示器&#xff08;Memory Indicator&#xff09; 解决方案 第一种&#xff1a;双击"内存指示器(Mempory Indicator)" 第二种&#xff1a;增大Intellij Idea 最大可使用内存 如何判断内存不够用了 运行项目后…

C# WPF 基础教程——触发器、行为、形状、变换与透明、路径和几何图形

触发器 简单触发器 单条件触发器 多条件触发器 事件触发器 行为 形状 矩形和椭圆 Viewbox缩放控件&#xff0c;直线&#xff0c;折线&#xff0c;多边形 画刷 普通画刷 线性渐变画刷 环形渐变画刷 位图画刷 虚拟画刷&#xff08;复制元素外观&#xff09; 位图缓存画刷 变换…

JVM执行引擎以及调优

1.JVM内部的优化逻辑 1.1JVM的执行引擎 javac编译器将Person.java源码文件编译成class文件[我们把这里的编译称为前期编译]&#xff0c;交给JVM运行&#xff0c;因为JVM只能认识class字节码文件。同时在不同的操作系统上安装对应版本的JDK&#xff0c;里面包含了各自屏蔽操作…

AI - FlowField(流场寻路)

FlowField流场寻路&#xff0c;利用网格存储每个点对目标点的推力&#xff0c;网格上的单位根据对于推力进行移动。用于大量单位进行寻路对于同一目的地的寻路&#xff0c;常用于rts游戏等。 对应一张网格地图(图中黑块是不可行走区域) 生成热度图 计算所有网格对于目标点(…

el-select实现分屏效果

动态绑定class值 &#xff0c;多种判断 :class"type 8 ? home-stye-2 : type 24 ? home-stye-1 : home-stye-3" <div class"home-right-top"><div class"home-right-top-video"><el-row :gutter"20"><el-c…