Vue2-指令语法

v-bind和v-model

<a v-bind:href="url">笔记1</a>
<a :href="url">笔记2</a><input type="text" v-model:value="name"/>
<input type="text" v-model="name"/>data(){return {url:"http://123.57.27.43:9908/mimi/index.html",name:"马朋帅"}
}

例:

<form><!-- 复选框 值为value -->1<input type="checkbox" v-model="userInfo.hobby" value="study">2<input type="checkbox" v-model="userInfo.hobby" value="game">3<input type="checkbox" v-model="userInfo.hobby" value="eat"><!-- 下拉框 --><select v-model="userInfo.city"><option value="">请选择</option><option value="beijing">北京</option><option value="shanghai">上海</option></select><!-- 文本域 体现v-model的修饰符--><textarea v-model.lazy="userInfo.other"></textarea><!-- 复选框 值为布尔值--><input type="checkbox" v-model="userInfo.agree">阅读并接受
</form>
<script>userInfo:{hobby:[],city:'beijing',other:'',agree:''  // v-model的初始值是非数组收集的是checkbox的布尔值}
</script>

v-model只能用于表单元素的value

v-model的三个修饰符:

  1. lazy:失去焦点再收集数据
  2. number:输入字符串转为有效的数字
  3. trim:输入首尾空格过滤

v-on

<button v-on:click="open1">1</button>
<button @click="open2">2</button>
<button @click="open3($event,66)">3</button><script>new Vue({el:"#root",methods:{open1(){console.log("v-on");},open2(){console.log("@");},open3(event,num){console.log(this); //vue对象console.log(event); //$event(vue中的标识符)就是这个按钮2console.log(num);}}})
</script>

事件修饰符

  1. prevent:阻止默认事件(比如:a标签href属性的连接跳转)
  2. stop:阻止事件冒泡
  3. once:事件只触发一次
  4. capture:使用事件的捕获模式
  5. self:只有event.target是当前操作的元素时才触发
  6. passive:事件的默认行为立即执行,无需等待事件的回调执行完毕
  7. native:给组件绑定事件。例:<Student @click.native="show()"/>
<body><div id="root"><a href="http://www.baidu.com" @click.prevent="showInfo">a标签</a></div><script type="text/javascript">new Vue({el:"#root",data(){return {name:"马朋帅"}},methods:{showInfo(){alert('事件修饰符')}}})</script>
</body>

捕获模式:盒子从外到内执行元素的绑定事件

冒泡模式:从内到外执行元素的绑定事件(默认使用冒泡模式执行事件)(先捕获后冒泡)

@scroll=“aaa” 滚动条滚动事件,@wheel=“aaa” 鼠标滚轮的滚动事件

@wheel先执行aaa函数,完成后鼠标滚轮滚动(可以用passive解决),@scroll无此类问题

@click.prevent.stop 可以连写

v-if和v-show

v-if:把元素去掉或显示(用于切换少)

v-if="“和v-else-if=”“和v-else=”"要一起用必须连这写

v-show:把元素隐藏或显示(用于切换频繁)

v-for

<div id="root"><!-- 遍历数组 --><ul><li v-for="(p,index) of persons" :key="index">{{p.name}}</li></ul><!-- 遍历对象 --><ul><li v-for="(value,key) of car" :key="key">{{key}}-{{value}}</li></ul><!-- 遍历字符串 --><ul><li v-for="(char,index) of str" :key="index">{{index}}-{{char}}</li></ul><!-- 遍历指定次数 --><ul><li v-for="(num,index) of 6" :key="index">{{index}}-{{num}}</li></ul></div>
<script type="text/javascript">new Vue({el: "#root",data() {return {persons: [{id:'001',name:'张三'},{id:'002',name:'李四'},{id:'003',name:'王五'}],car:{name: '张三',age: 18},str: 'hello',}}})
</script>

key 的原理

用index作为key可能会引发的问题:

  1. 若对数据进行:逆序添加(在数组前面插入元素)、逆序删除(删除数组前面,中间的数据)等破坏顺序的操作:

    会产生没有必要的真实DOM更新 ==> 界面没问题(效率低)

    原因:一次页面渲染前后key对应的元素相同会复用(因为在数组最前面添加元素,index都会往后移一个,key对应的元素跟以前对不上不会复用)

  2. 如果结构中还包含输入类的DOM(比如:Input框):

    会产生错误DOM更新 ==> 界面有问题(效率低)。

    原因:一次页面渲染前后key对应的元素相同会复用,Vue不会变的Input的value只判断他的结构,结构相同会复用可能Input的value不同页面发生错误

开发中如何选择key(以上问题的解决方法):

​ a. 最好使用每条数据的唯一标识作为key, 比如id、手机号、身份证号、学号等唯一值。

​ b. 如果不存在对数据的逆序添加、逆序删除等破坏顺序操作,仅用于渲染列表用于展示,使用index作为key是没有问题的。

v-text和v-html

<div id="root"><div>{{name}}</div><div v-text="name"></div><div v-html="nameMmm"></div>
</div>
<script type="text/javascript">new Vue({el: "#root",data() {return {name : "张三",nameMmm: "<a href='#'>张三</a>"}}})
</script>

v-cloak

vue文件加载慢的时候页面可能出现 {{name}}

解决方法(两种):

(第一种)把vue.js文件放在HTML文件的前面head里面

(第二种)v-cloak,用法:在有上述问题的标签上加v-cloak标签,当加载到vue.js文件后,就会去除该标签

<head><style>[v-cloak]{display: none;}</style>
</head>
<body>
<div id="root"><div v-cloak>{{name}}</div>
</div>
<script type="text/javascript">const vm = new Vue({el: "#root",data() {return {name : "张三",}}})
</script>

v-once和v-pre

v-once:页面第一次加载的时候读取变量,之后变量变化值不改变

<div id="root"><div v-once>{{n}}</div><div>{{n}}</div><button @click="n++">n++</button>
</div>
<script type="text/javascript">new Vue({el: "#root",data() {return {n : 1,}}})
</script>

v-pre:vue不会解析带有该属性的标签

自定义指令(略)

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

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

相关文章

mac brew 无法找到php7.2 如何安装php7.2

mac brew 无法找到php7.2 如何安装php7.2 原因是升级过高版本的brew后已经不支持7.2了&#xff0c;但可以通过第三方工具来安装 brew tap shivammathur/php brew install shivammathur/php/php7.2标题安装完成后会提示以下信息&#xff1a; The php.ini and php-fpm.ini fil…

想要从视频中提取背景音乐怎么搞?其实视频提取音频非常简单

在日常生活中&#xff0c;我们经常遇到这样的情况&#xff1a;有一段非常精彩的视频&#xff0c;而其中的背景音乐或对话正是你所需要的。这时&#xff0c;如果能将这段音频单独提取出来&#xff0c;就可以方便地在其他场合使用了。通过一些专业的软件工具&#xff0c;如 Video…

第十六届蓝桥杯网安初赛wp

解题列表 根据提示一步一步走&#xff0c;经过猜测&#xff0c;测试出app.py 经过仔细研读代码&#xff0c;找到密钥 编写python代码拿到flag key secret_key9828 flagd9d1c4d9e0d6c29e9aad71696565d99bc8d892a8979ec7a69b9a6868a095c8d89dac91d19ba9716f63b5 newbytearray(…

【leetcode100】单词拆分

1、题目描述 给你一个字符串 s 和一个字符串列表 wordDict 作为字典。如果可以利用字典中出现的一个或多个单词拼接出 s 则返回 true。 注意&#xff1a;不要求字典中出现的单词全部都使用&#xff0c;并且字典中的单词可以重复使用。 示例 1&#xff1a; 输入: s "l…

机器人项目管理新风口:如何高效推动智能机器人研发?

在2025年政府工作报告中&#xff0c;“智能机器人”首次被正式纳入国家发展战略关键词。从蛇年春晚的秧歌舞机器人惊艳亮相&#xff0c;到全球首个人形机器人马拉松的热议&#xff0c;智能机器人不仅成为科技前沿的焦点&#xff0c;也为产业升级注入了新动能。而在热潮背后&…

k8s学习记录(四):节点亲和性

一、前言 在上一篇文章里&#xff0c;我们了解了 Pod 中的nodeName和nodeSelector这两个属性&#xff0c;通过它们能够指定 Pod 调度到哪个 Node 上。今天&#xff0c;我们将进一步深入探索 Pod 相关知识。这部分内容不仅信息量较大&#xff0c;理解起来也有一定难度&#xff0…

NeRF:原理 + 实现 + 实践全流程配置+数据集测试【Ubuntu20.04 】【2025最新版】

一、引言 从三维建模、虚拟现实到电影级渲染&#xff0c;真实感建模一直是计算机视觉和图形学的核心目标。 在传统方法中&#xff0c;我们往往依赖&#xff1a; 多视角立体&#xff08;MVS&#xff09;点云重建 网格拟合显式建模&#xff08;如多边形、体素、TSDF&#xff0…

ASP.NET MVC​ 入门指南三

16. 安全性 16.1 身份验证和授权 身份验证&#xff1a;确认用户的身份。ASP.NET MVC 支持多种身份验证方式&#xff0c;如表单身份验证、Windows 身份验证和 OAuth 等。 表单身份验证&#xff1a;用户通过输入用户名和密码登录&#xff0c;服务器验证后颁发一个身份验证票证&…

佳博票据和标签打印:Web网页端与打印机通信 | iOS

文章目录 引言I Web网页端与打印机通信webSDK(包含示例页)打印测试II iOS与佳博打印机通信引言 佳博工具下载ESC是票据打印指令,TSC是标签打印指令 工业打印机:佳博GP-H430F工业机标签条码打印机物流快递电子面单条码机碳带机 应用场景:打印商品价格标签、打印交易小票 I…

c语言初识

学c注意事项 我写了很多服务器的代码&#xff0c;我怕有些人看不懂所以就写了这篇入门篇。 学习c语言要多动手&#xff0c;多练习&#xff0c;其实语法就几个,你了解了就会写出自己想要的代码&#xff0c;你不要怕不会写不出程序&#xff0c;因为大部分代码都有人写好&#xf…

请求参数、路径参数、查询参数、Spring MVC/FeignClient请求相关注解梳理

目录 1 请求分类1.1 URL参数--查询参数1.2 URL参数--路径参数 2 请求相关注解2.1 RequestParam--查询参数2.2 PathVariable--路径参数2.3 RequestBody2.4 Param & RequestLine2.5 SpringMVC请求参数注解用在FeignClient里 使用SpringMVC处理http请求或使用FeignClient进行请…

智能指针之设计模式3

这次我们看一下智能指针是如何使用策略模式来释放资源的&#xff0c;同时又是如何扩展功能&#xff0c;管理更多的资源对象类型的。 3、策略模式 策略模式作为一种软件设计模式&#xff0c;指对象有某个行为&#xff0c;但是在不同的应用场景中&#xff0c;该行为有不同的实现…

华为盘古OS深度评测:构建AI自进化系统的实践密码

华为盘古OS通过分布式AI内核与自适应学习框架的深度耦合&#xff0c;重新定义操作系统级智能能力。实测显示其AI任务调度效率较传统系统提升17倍&#xff0c;本文从智能体编排、持续学习机制、端云协同架构三个维度&#xff0c;解析如何基于DevKit 3.0打造具备认知进化能力的下…

精益数据分析(28/126):解读商业模式拼图与关键指标

精益数据分析&#xff08;28/126&#xff09;&#xff1a;解读商业模式拼图与关键指标 在创业和数据分析的探索旅程中&#xff0c;每一次深入研究都可能带来新的启发和突破。今天&#xff0c;我们依旧带着共同进步的初心&#xff0c;深入解读《精益数据分析》中关于商业模式的…

GitLab Runner配置并行执行多个任务

检查并修改方法&#xff1a; 打开 Runner 的配置文件&#xff08;通常位于 /etc/gitlab-runner/config.toml 或 ~/.gitlab-runner/config.toml&#xff09;。 确保 concurrent 值大于 1&#xff0c;例如&#xff1a; concurrent 4 # 允许最多 4 个任务同时运行重启 Runner…

开发首个Spring Boot应用

&#x1f4cb; 前置条件 &#x1f3af; 在开始之前&#xff0c;请打开终端并运行以下命令以确保已安装正确版本的 Java&#xff1a; $ java -version openjdk version "17.0.4.1" 2022-08-12 LTS OpenJDK Runtime Environment (build 17.0.4.11-LTS) OpenJDK 64-Bi…

【信息系统项目管理师】高分论文:论质量管理和进度管理(智慧旅游平台建设项目)

更多内容请见: 备考信息系统项目管理师-专栏介绍和目录 文章目录 论文1、规划质量管理2、质量保证3、质量控制论文 2019年3月,我作为项目经理,参加了某市智慧旅游平台建设项目,负责项目的全面管理, 该项目以打造一流的国内外生态旅游城市为目标,旨在大数据云平台建设的基…

DAM-3B,英伟达推出的多模态大语言模型

DAM-3B是什么 DAM-3B&#xff08;Describe Anything 3B&#xff09;是英伟达推出的一款多模态大语言模型&#xff0c;专门用于为图像和视频中的特定区域生成详细描述。用户可以通过点、边界框、涂鸦或掩码等方式来标识目标区域&#xff0c;从而得到精准且符合上下文的文本描述…

如何判断你的PyTorch是GPU版还是CPU版?

如何判断你的PyTorch是GPU版还是CPU版&#xff1f; PyTorch作为当前最流行的深度学习框架之一&#xff0c;支持在CPU和GPU(NVIDIA CUDA)上运行。对于深度学习开发者来说&#xff0c;正确识别PyTorch版本至关重要&#xff0c;因为GPU版本可以带来10-100倍的性能提升。本文将全面…

Gin框架

Gin 快速入门 go get -u github.com/gin-gonic/gin package main import gin "github.com/gin-gonic/gin"func main() {engine : gin.Default()engine.GET("/", func(c *gin.Context) {c.String(200, "Hello Gin")})engine.Run(":8888&q…