Vue中常用指令

Vue中的常用指令

  • Vue中的常用指令
  • 内容渲染指令
  • 条件渲染指令
  • 事件绑定指令
    • 内联语句
    • 事件处理函数
    • 给事件处理函数传参
  • 属性绑定指令
  • 列表渲染指令
    • v-for中的key
  • 双向绑定指令

Vue中的常用指令

概念:指令 是 Vue 提供的带有 v- 前缀 的 特殊 标签属性。Vue 会根据不同的【指令】,针对标签实现不同的【功能】
为啥要学:提高程序员操作 DOM 的效率。
vue 中的指令按照不同的用途可以分为如下 6 大类:

  • 内容渲染指令(v-html、v-text)
  • 条件渲染指令(v-show、v-if、v-else、v-else-if)
  • 事件绑定指令(v-on)
  • 属性绑定指令 (v-bind)
  • 列表渲染指令(v-for)
  • 双向绑定指令(v-model)

内容渲染指令

内容渲染指令用来辅助开发者渲染 DOM 元素的文本内容。常用的内容渲染指令有如下2 个:

  • v-text(类似innerText)

    • 使用语法:<p v-text="uname">hello</p>,意思是将 uame 值渲染到 p 标签中
    • 类似 innerText,使用该语法,会覆盖 p 标签原有内容
  • v-html(类似 innerHTML)

    • 使用语法:<p v-html="intro">hello</p>,意思是将 intro 值渲染到 p 标签中
    • 类似 innerHTML,使用该语法,会覆盖 p 标签原有内容
    • 类似 innerHTML,使用该语法,能够将HTML标签的样式呈现出来。

代码演示:

    <div class="app"><p v-text="uname">姓名:</p> <p v-html="intro">简介:</p></div><script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script><script>const app = new Vue({el:'.app',data:{// v-html自动解析标签,{{ }}不解析标签uname:'李四',intro:`<h1>自动解析标签</h1>`}})</script>

在这里插入图片描述

条件渲染指令

条件判断指令,用来辅助开发者按需控制 DOM 的显示与隐藏。条件渲染指令有如下两个,分别是:

  • v-show
    • 作用: 控制元素显示隐藏
    • 语法: v-show = “表达式” 表达式值为 true 显示, false 隐藏
    • 原理: 切换 display:none 控制显示隐藏
    • 场景:频繁切换显示隐藏的场景
  • v-if
    • 作用: 控制元素显示隐藏(条件渲染)
    • 语法: v-if= “表达式” 表达式值 true显示, false 隐藏
    • 原理: 基于条件判断,是否创建 或 移除元素节点
    • 场景: 要么显示,要么隐藏,不频繁切换的场景
  <!-- v-show底层原理:切换 css 的 display: none 来控制显示隐藏v-if  底层原理:根据 判断条件 控制元素的 创建 和 移除(条件渲染)--><div id="app"><div v-show="flag" class="box">我是v-show控制的盒子</div><div v-if="flag" class="box">我是v-if控制的盒子</div></div><script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script><script>const app = new Vue({el: '#app',data: {flag: false}})

浏览器检查中,v-show的元素节点存在,v-if的元素节点不存在
在这里插入图片描述

  • v-else 和 v-else-if

    • 作用:辅助v-if进行判断渲染
    • 语法:v-else v-else-if=“表达式”
    • 需要紧接着v-if使用
    <div class="app"><p v-if="sc > 90">A</p><p v-else-if="sc > 70">B</p><p v-else-if="sc > 60">C</p><p v-else>D</p></div><script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script><script>const app = new Vue({el:'.app',data:{sc:90}})</script>

在这里插入图片描述

事件绑定指令

使用Vue时,如需为DOM注册事件,及其的简单,语法如下:

  • <button v-on:事件名=“内联语句”>按钮
  • <button v-on:事件名=“处理函数”>按钮
  • <button v-on:事件名=“处理函数(实参)”>按钮
  • v-on: 简写为 @

内联语句

    <div class="app"><button @click="count--"> - </button><h3>{{ count }}</h3><button @click="count++"> + </button></div><script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script><script>const app = new Vue({el:'.app',data:{count: 100}})</script>

在这里插入图片描述

事件处理函数

注意:

  • 事件处理函数应该写到一个跟data同级的配置项(methods)中
  • methods中的函数内部的this都指向Vue实例
    <div class="app"><button @click="fn">切换显示隐藏</button><h2 v-show="isShow">{{ count }}</h2></div><script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script><script>const app = new Vue({el:'.app',data:{isShow: true,count:'你好 Vue'},methods:{fn(){this.isShow = !this.isShow}}})</script>

请添加图片描述

给事件处理函数传参

  • 如果不传递任何参数,则方法无需加小括号;methods方法中可以直接使用 e 当做事件对象

  • 如果传递了参数,则实参 $event 表示事件对象,固定用法。

    <div class="app"><h3>{{ title }}</h3><button @click="buy(3)">{{ goods1 }}</button><button @click="buy(5)">{{ goods2}}</button><p>余额{{ money}} 元</p></div><script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script><script>const app = new Vue({el:'.app',data:{title:'售货机',goods1:'可乐 3元',goods2:'面包 5元',money:'100'},methods:{buy(money){this.money = this.money - money}}})</script>

在这里插入图片描述

属性绑定指令

作用:动态设置html的标签属性 比如:src、url、title
语法:v-bind:属性名=“表达式”
v-bind:可以简写成 => :

    <div class="app"><img :src="imgUrl" alt=""></div><script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script><script>const app = new Vue({el:'.app',data:{imgUrl:'./imgs/10-01.png'}})</script>

在这里插入图片描述

列表渲染指令

Vue 提供了 v-for 列表渲染指令,用来辅助开发者基于一个数组来循环渲染一个列表结构。
v-for 指令需要使用 (item, index) in arr 形式的特殊语法,其中:

  • item 是数组中的每一项
  • index 是每一项的索引,不需要可以省略
  • arr 是被遍历的数组
    <div class="app"><ul><li v-for="(item,index) in booksList" :key="item.id"><span>{{ item.name }}</span><span>{{ item.author }}</span><button @click="del(item.id)">删除</button></li></ul></div><script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script><script>const app = new Vue({el:'.app',data:{booksList:[{ id: 1, name: '《红楼梦》', author: '曹雪芹' },{ id: 2, name: '《西游记》', author: '吴承恩' },{ id: 3, name: '《水浒传》', author: '施耐庵' },{ id: 4, name: '《三国演义》', author: '罗贯中' }]},methods:{del(id){console.log(id)this.booksList = this.booksList.filter(item => item.id !== id)}}})</script>

在这里插入图片描述

v-for中的key

语法: :key=“唯一值”
作用:给列表项添加的唯一标识。便于Vue进行列表项的正确排序复用。
为什么加key:Vue 的默认行为

注意:

  1. key 的值只能是字符串 或 数字类型
  2. key 的值必须具有唯一性
  3. 推荐使用 id 作为 key(唯一),不推荐使用 index 作为 key(会变化,不对应)会尝试原地修改元素(就地复用)

双向绑定指令

所谓双向绑定就是:

  1. 数据改变后,呈现的页面结果会更新
  2. 页面结果更新后,数据也会随之而变

作用: 给表单元素(input、radio、select)使用,双向绑定数据,可以快速 获取 或 设置 表单元素内容
语法:v-model=“变量”

    <div class="app">账户:<input type="text" v-model="username"><br>密码:<input type="password" v-model="password"><br><button @click="login">登录</button><button @click="reset">重置</button></div><script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script><script>const app = new Vue({el:'.app',data:{username:'',password:''},methods:{login(){console.log('账户:' , this.username , ', 密码:' , this.password);},reset(){this.username = '';this.password = '';}}})</script>

在这里插入图片描述

<div id="app"><h3>学习网</h3>姓名:<input type="text" v-model="username"> <br><br>是否单身:<input type="checkbox" v-model="isSingle"> <br><br><!-- 前置理解:1. name:  给单选框加上 name 属性 可以分组 → 同一组互相会互斥2. value: 给单选框加上 value 属性,用于提交给后台的数据结合 Vue 使用 → v-model-->性别: <input v-model="gender" type="radio" name="gender" value="1"><input v-model="gender" type="radio" name="gender" value="2"><br><br><!-- 前置理解:1. option 需要设置 value 值,提交给后台2. select 的 value 值,关联了选中的 option 的 value 值结合 Vue 使用 → v-model-->所在城市:<select v-model="cityId"><option value="101">北京</option><option value="102">上海</option><option value="103">成都</option><option value="104">南京</option></select><br><br>自我描述:<textarea v-model="desc"></textarea> <button>立即注册</button></div><script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script><script>const app = new Vue({el: '#app',data: {username: '',isSingle: false,gender: "2",cityId: '102',desc: ""}})</script>

在这里插入图片描述

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

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

相关文章

硬性清空缓存的方法

前端发布代码后&#xff0c;我们是需要刷新页面再验证的。有时候仅仅f5 或者ctrlshiftdelete快捷键仍然有历史缓存&#xff0c;这时可以通过下面的方法硬性清空缓存。 以谷歌浏览器为例&#xff0c;打开f12&#xff0c;右键点击刷新按钮&#xff0c;选择【清空缓存并硬性加载】…

JavaScript异步编程——07-Promise实例的方法【万字长文,感谢支持】

Promise 实例的方法简介 Promise 的 API 分为两种&#xff1a; Promise 实例的方法&#xff08;也称为&#xff1a;Promis的实例方法&#xff09; Promise 类的方法&#xff08;也称为&#xff1a;Promise的静态方法&#xff09; Promise 实例的方法&#xff1a;我们需要实…

PyTorch机器学习实现液态神经网络

大家好&#xff0c;人工智能的发展催生了神经网络这一强大的预测工具&#xff0c;这些网络通过数据和参数优化生成预测&#xff0c;每个神经元像逻辑回归门一样工作。结合反向传播技术&#xff0c;模型能够根据损失函数来调整参数权重&#xff0c;实现自我优化。 然而&#xf…

等保测评技术方案

等保&#xff0c;即“网络安全等级保护”&#xff0c;是中国实施的一项信息安全保护制度&#xff0c;旨在对不同重要性的信息和信息系统实行分等级保护&#xff0c;保障国家安全、社会秩序以及公共利益。等保技术方案是指为了达到国家网络安全等级保护标准要求&#xff0c;针对…

Mock.js 问题记录

文章目录 Mock.js 问题记录1. 浮点数范围限制对小数不起效2. increment 全局共用 Mock.js 问题记录 最新写网页的时候引入了 Mock.js 来生成模拟数据&#xff1b; Mock使用起来很方便&#xff0c;具体可以参考 官网 很快就能上手&#xff0c; 但是这个项目最近一次提交还是在2…

誉天教育近期开班计划

云计算HCIE 晚班 2024/5/13 大数据直通车 周末班 2024/5/25 数通直通车 晚班 2024/5/27 云服务HCIP 周末班 2024/6/1 云计算HCIP 周未班 2024/6/1 RHCA442 晚班 2024/6/17 周末班&#xff1a;周六-周日9:00-17:00晚 班&#xff1a;周一到周五19:00-21:30注&…

@Test测试Mapper接口报错java.lang.NullPointerException

Test测试Mapper接口报错java.lang.NullPointerException 报错原因&#xff1a;没有注入依赖 解决方法&#xff1a;在测试类上面添加SpringBootTest

winform图书销售管理系统+mysql

winform图书销售管理系统mysql数据库说明文档 运行前附加数据库.mdf&#xff08;或sql生成数据库&#xff09; 功能模块&#xff1a; 管理员:ttt 123 登陆可以操作我的 个人信息 修改密码 用户信息 添加删除用户 图书 添加删除图书信息 购物车 购买订单信息 充值 退出账户 …

【SRC实战】遍历手机号给全站用户发放优惠券

挖个洞先 https://mp.weixin.qq.com/s/m8ULZ52p1q_mKrCRnaI_7A “ 以下漏洞均为实验靶场&#xff0c;如有雷同&#xff0c;纯属巧合 ” 01 — 漏洞证明 一、遍历手机号 “ 没有验证码二次校验的漏洞如何扩大危害&#xff1f;” 1、输入手机号码&#xff0c;领取优惠券场景…

笨方法自学python(六)

上一节中出现了\n&#xff0c;这个作用是换行。\后面带不同字符有不同的作用&#xff0c;我们先简单了解几个&#xff0c; 使用反斜杠 \ (back-slash) 可以将难打印出来的字符放到字符串。针对不同的符号有很多这样的所谓“转义序列(escape sequences)”&#xff0c;我们来练习…

哇哦,一个超级牛逼的图片格式!!使用它之后我们系统加载图片快了一倍!!! 图片格式转换webp学习!

什么是webp格式&#xff1f; WebP 格式是一种图像文件格式。 它是由谷歌开发的&#xff0c;旨在提供一种高效的图像压缩方式&#xff0c;同时保持较好的图像质量。WebP 格式具有较小的文件体积&#xff0c;能够在一定程度上减少网络传输的数据量&#xff0c;提升网页加载速度…

数据链路层之 以太网协议

以太网协议 这个协议即规定了数据链路层&#xff0c;同时也规定了物理层的内容。平时使用到的网线&#xff0c;其实也叫做“以太网线”&#xff08;遵守以太网协议的网线&#xff09;。 以太网帧格式 以太网数据帧 帧头 载荷 帧尾。 帧头&#xff1a;目的地址、源地址、类型…

SpringMVC传递参数

1.RequestMapping RequestMapping本身可以处理&#xff0c;get或post,指定了get或post之后&#xff0c;就只能处理对应的请求。 RequestMapping(value{"haihiyo","goodMoring"},methodRequestMethod.POST)2.RestFul风格 RestFul是一种风格 比如:网站的访…

人脸可调色美颜SDK解决方案,让妆容更加自然、真实

在追求个性化和差异化的美妆时代&#xff0c;美摄科技以其前沿技术&#xff0c;为企业带来了一场美妆革新的风暴。我们全新推出的人脸可调色美颜SDK解决方案&#xff0c;将为您提供前所未有的美妆体验&#xff0c;让每一位用户都能轻松打造属于自己的独特妆容。 可调色技术&am…

护肤升级:如何选择最适合您的AI皮肤技术解决方案?

在不断变化的护肤行业中&#xff0c;人工智能技术的整合已经彻底改变了企业满足个人护肤需求的方式。了解人工智能在美容行业的重要性以及提供的解决方案&#xff0c;是选择最合适的解决方案至关重要的。领先的主要参与者之一是玩美移动&#xff0c;他们提供了一套全面的AI皮肤…

有了这张“表”,印章什么情况契约锁帮您一查便知

随着电子签章的普及&#xff0c;企业法人、印章管理员最关心的问题就是“印章现在怎么样了”。等人汇报不仅存在时差、整理起来工作量大、数据精准性也没法保证… 契约锁推出“印章数据看板”&#xff0c;帮您连接各类业务软件&#xff0c;将所有真实印章操作数据自动沉淀下来&…

武汉星起航:五对一精细化服务助力合作伙伴开启亚马逊新篇章

武汉星起航电子商务有限公司以其专业的服务和独特的模式&#xff0c;为合作伙伴在亚马逊自营领域开拓了一片新天地。自2017年专注于亚马逊自营以来&#xff0c;武汉星起航不仅积累了丰富的经验&#xff0c;更在2020年成立了武汉星起航电子商务有限公司&#xff0c;进一步提升了…

Python深度学习基于Tensorflow(8)自然语言处理基础

RNN 模型 与前后顺序有关的数据称为序列数据&#xff0c;对于序列数据&#xff0c;我们可以使用循环神经网络进行处理&#xff0c;循环神经网络RNN已经成功的运用于自然语言处理&#xff0c;语音识别&#xff0c;图像标注&#xff0c;机器翻译等众多时序问题&#xff1b;RNN模…

k8s 使用Docker和Containerd对比分析

目录 k8s 使用Docker和Containerd对比分析 互动1&#xff1a;docker build构建的镜像和containerd镜像通用吗&#xff1f; 互动2&#xff1a;k8s1.24之前版本和1.24及1.24之后版本区别&#xff1f; k8s 使用Docker和Containerd对比分析 如果你使用Docker作为K8S容器运行时的…

企业内外网隔离后的文件传输解决方案

一、企业为什么要进行内外网隔离 在当今信息化快速发展的时代&#xff0c;企业内部网络的构建和管理显得尤为重要。为了更好地保护企业信息安全和提高工作效率&#xff0c;许多企业选择将网络划分为内网和外网。那么&#xff0c;企业划分内外网的作用具体体现在哪些方面呢&…