Vue.js基础指令

在讲指令之前,可以先了解插值表达式,如果已经知道,当我没说

一.插值表达式


1.数据绑定最常见的形式就是双大括号的文本插值,Mustache上属性的值替代。只要绑定的数据对象上属性发生了改变,插值处的内容都会更新。,message 是将数据解析成纯文本的,也就是说,就算中含有了 html,message签,它也是只看做纯文本的,不能输出真正的 html。

完整代码例子

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>豪哥用例</title>
<script src="https://cdn.staticfile.net/vue/2.7.0/vue.min.js"></script>
</head>
<body>
<div id="app"><p>{{ message }}</p>
</div><script>
new Vue({el: '#app',data: {message: 'Hello 503'}
})
</script>
</body>
</html>

 运行结果:


二.基础(内置)指令

1.Vue.js 使用了基于 HTML 的模板语法,允许开发者声明式地DOM 绑定至底层 Vue 实例的数据。
Vue.js 的核心是一个允许你采用简洁的模板语法来声明式的将数据渲染进 DOM 的系统。
结合响应系统,在应用状态改变时, Vue 能够智能地计算出重新渲染组件的最小代价并应用到 DOM 操作上。

说简单点:


v-text  指令:

在与插值表达式的比较中:
它与花括号的区别是:使用 v-text 在页面加载时不会显示'message',解决了插值表达式闪烁问题,因为它是属性而不是插值表达式。

应用例子:

<div id="app"><p v-text="message"></p>
</div>
var app = new Vue({el: '#app',data: {message: 'Hello, Vue.js!'}
});

v-text 通过设置元素的 textContent 属性来工作,因此它将覆盖元素中所有现有的内容。如果你需要更新 textContent 的部分,应该使用 mustache interpolations 代替。


v-html指令

v-htm1 指令用于将 HTML 标签和文本插入到元素中。
如果您尝试使用文本插值(使用大括号{{ }})输出 HTML 标签,结果将只是一个文本字符串。
使用<style scoped>在单文件组件(SFC)中定义的范围样式不会影响 v-htm1 指令中的 HTML。
为了实现 SFC 中 v-htm1 包含的 HTML 的范围样式,我们可以将 CSS 模块与<style module〉结合使用。 v-html 的内容直接作为普通 HTML 插入—— Vue 模板语法是不会被解析的。如果你发现自己正打算用 v-html 来编写模板,不如重新想想怎么使用组件来代替。

典例:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<script src="https://cdn.staticfile.net/vue/2.2.2/vue.min.js"></script>
</head>
<body>
<div id="app"><div v-html="message"></div>
</div><script>
new Vue({el: '#app',data: {message: '<h1>503秘密基地</h1>'}
})
</script>
</body>
</html>

运行结果 :

在HTML模板中,使用v-html指令将"message"属性的值渲染到页面中。v-html指令会将属性值作为HTML解析并插入到指令所在的元素中。

最终的结果是页面中显示了一个h1标题,内容为"503秘密基地"。

注意无论是v-html还是v-text,如果绑定了data中属性之后,会覆盖掉原本标签上的内容。


v-show指令

官方解释:v-show
基于表达式值的真假性,来改变元素的可见性。我的说法差不多(根据表达式的值来控制元素的显示与隐藏。

期望的绑定值类型:any
通过设置内联样式的CSS 属性来工作,当元素可见时将使用初始displayv-show值。当条件改变时,也会触发过渡效果。

例如1:

<div v-show="isVisible">This is a visible element</div>

在上面的代码中,v-show指令被绑定在一个<div>元素上,它的值为isVisible,表示这个元素的显示与隐藏将根据isVisible的值来决定。

  • 如果isVisible的值为true,那么该<div>元素将会显示在页面上。
  • 如果isVisible的值为false,那么该<div>元素将会被隐藏,其占用的空间也会被隐藏。

v-show的特点是在元素的style属性上使用了display属性来控制元素的显示与隐藏,不会从DOM中移除元素,因此会占用页面的空间。

v-show的表达式可以是任何返回布尔值的表达式。可以是一个data中定义的属性,也可以是一个计算属性或者一个方法的返回值。

例如2,在Vue实例中定义了一个名为isVisible的属性:

new Vue({el: '#app',data: {isVisible: true}
})

那么该元素的显示与隐藏将根据isVisible属性的值来决定。

注意v-show 不支持在 <template> 元素上使用,也不能和 v-else 搭配使用。

v-if指令

解释:v-if是Vue.js中的一个条件渲染指令,用于根据表达式的真假来判断是否渲染元素。

特点:

<div v-if="isVisible">This is a visible element</div>

在上面的代码中,v-if指令被绑定在一个<div>元素上,它的值为isVisible,表示这个元素是否渲染将根据isVisible的值来决定。

  • 如果isVisible的值为true,那么该<div>元素将会被渲染并显示在页面上。
  • 如果isVisible的值为false,那么该<div>元素将不会被渲染,并且在DOM中不存在。

v-if的特点是根据条件动态地将元素渲染到DOM中或从DOM中移除,从而实现元素的显示与隐藏。

v-if的表达式可以是任何返回布尔值的表达式。可以是一个data中定义的属性,也可以是一个计算属性或者一个方法的返回值。

例子:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>火影DD</title>
<script src="https://cdn.staticfile.net/vue/2.2.2/vue.min.js"></script>
</head>
<body>
<div id="app"><p v-if="seen">林,苏,周,罗,邱,李</p><template v-if="ok"><h1>九江职业技术学院503秘密基地</h1><p>学的不仅是技术,更是梦想!</p></template>
</div><script>
new Vue({el: '#app',data: {seen: true,ok: true}
})
</script>
</body>
</html>

运行结果:


v-show与v-if的不同

v-show 和 v-if 之间的区别在于 v-if 根据条件创建(渲染)元素,但 v-show 元素已经创建,仅 v-show 改变其可见性(display)。
因此,切换对象的可见性时最好使用 v-show,因为浏览器更容易做到,并且可以带来更快的响应和更好的用户体验。
使用 v-if 而不是 v-show 的原因是 v-if 可以与 v-else-if 和 v-else 一起使用。

官方解释:


都讲到v-if,那就将v-else也说了去,if,else,对于学习语言的是多么的熟悉,到哪都密不可分

语法上也都相差不大。

v-else

基本解释:v-else指令是Vue.js模板语法中的一种指令,用于在条件渲染中定义一个“否则”分支。

使用v-if指令时,可以通过v-else指令来定义一个“否则”分支,该分支会在v-if条件为假时被渲染。v-else指令必须紧跟在v-if或v-else-if指令之后,并且不能单独使用。

典例1:

<div v-if="condition">
  条件为真时渲染的内容
</div>
<div v-else>
  条件为假时渲染的内容
</div>

解释:

如果condition为真,则第一个div会被渲染;如果condition为假,则第二个div会被渲染。

v-else指令的存在可以简化条件渲染的逻辑,使代码更加清晰易读。

注意:一个 v-else 元素必须跟在一个 v-if 或者 v-else-if 元素后面,否则它将不会被v-

v-else-if



v-on指令

含义:

v-on指令用于绑定DOM事件到Vue实例的方法上。它可以在模板中监听DOM事件,并执行指定的方法。

使用v-on指令的一般语法是将事件名称作为指令参数,方法名作为指令的值。例如,可以通过v-on:click来监听元素的点击事件,然后在Vue实例中定义一个名为clickHandler的方法来处理点击事件。

v-on指令还可以使用简化语法,将@符号作为指令的前缀。例如,@click相当于v-on:click。

关于调用传参,诸位道友可看:

  1. 传递参数给Vue方法:可以在v-on指令中使用方法参数来获取事件对象或其他自定义参数,并将其传递给Vue方法。例如,可以通过@click指令的参数来传递事件对象。

<button v-on:click="doSomething($event)">Click me</button>
methods: {doSomething(event) {// 使用event获取事件对象}
}

 

2.使用修饰符:v-on指令可以使用修饰符来改变事件监听的行为。例如,使用.stop修饰符可以阻止事件冒泡。

<button v-on:click.stop="doSomething">Click me</button>

methods: {doSomething() {// 执行某些操作}
}

典例1:

<!DOCTYPE html>
<html>
<head><title>电灯开关</title><style>#app {border: dashed black 1px;display: inline-block;padding-bottom: 10px;}#app > button {display: block;margin: auto;}#lightDiv {position: relative;width: 150px;height: 150px;}#lightDiv > img {position: relative;width: 100%;height: 100%;}#lightDiv > div {position: absolute;top: 10%;left: 10%;width: 80%;height: 80%;border-radius: 50%;background-color: yellow;}</style>
</head>
<body><h1>503电灯开关</h1>
<p>v-on 指令用在按钮标签上来监听“click”事件。 当“click”事件发生时,“lightOn”数据属性在“true”和“false”之间切换,使灯泡后面的黄色 div 可见/隐藏。</p>
<div id="app"><div id="lightDiv"><div v-show="lightOn"></div><img src="img_lightBulb.svg"></div><button v-on:click=" lightOn =! lightOn ">开关灯</button>
</div><script src="https://unpkg.com/vue@3/dist/vue.global.js"></script>
<script>const app = Vue.createApp({data() {return {lightOn: false}}})app.mount('#app')
</script></body>
</html>

运行结果:

解释:这是一个电灯开关的页面。页面中有一个电灯图像,当点击"开关灯"按钮时,图像后方的黄色div会显示/隐藏,表示电灯是否亮着。页面使用Vue.js框架实现了点击按钮时切换灯泡状态的功能。

在HTML部分,通过v-show指令来控制灯泡后面的黄色div的显示与隐藏,当lightOn为true时,div显示,当lightOn为false时,div隐藏。

在按钮部分,使用v-on指令监听按钮的click事件,当按钮被点击时,通过表达式“lightOn =! lightOn”来切换lightOn的值,实现灯的开关效果。

v-bind命令

解释:

v-bind指令是Vue.js中用于动态绑定HTML特性的指令,它的主要作用是将Vue实例中的数据绑定到HTML元素的特性上。(Vue 的内联样式是通过使用 v-bind 将样式属性绑定到 Vue 来完成的.)

在Vue.js中,v-bind指令还有一个简写形式,即":属性名"。这被称为v-bind的语法糖。

使用v-bind的语法糖,可以直接在HTML元素中使用冒号加特性名的方式来绑定数据。

官方解释:

简单小例子:

<!-- 使用v-bind的完整写法 -->
<img v-bind:src="imgUrl"><!-- 使用v-bind的语法糖写法 -->
<img :src="imgUrl">

解释:通过使用v-bind的语法糖写法,将Vue实例中的imgUrl数据绑定到img元素的src特性上。当imgUrl的值发生变化时,img元素的src特性也会相应地更新。 

1.绑定属性值:

<!-- 常规写法 -->
<div v-bind:class="{ active: isActive, 'text-bold': isBold }"></div><!-- 语法糖写法 -->
<div :class="{ active: isActive, 'text-bold': isBold }"></div>

使用v-bind指令将imageUrl属性绑定到img元素的src属性上,实现动态地修改图片的URL

2.动态绑定class:

<!-- 常规写法 -->
<div v-bind:class="{ active: isActive, 'text-bold': isBold }"></div><!-- 语法糖写法 -->
<div :class="{ active: isActive, 'text-bold': isBold }"></div>

使用v-bind指令将一个对象作为参数传递给class属性,根据isActive和isBold的值动态地设置元素的class。

3.动态绑定样式:

<!-- 常规写法 -->
<div v-bind:style="{ color: textColor, fontSize: fontSize + 'px' }"></div><!-- 语法糖写法 -->
<div :style="{ color: textColor, fontSize: fontSize + 'px' }"></div>

使用v-bind指令将一个对象作为参数传递给style属性,根据textColor和fontSize的值动态地设置元素的。

注意:

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

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

相关文章

设置asp.net core WebApi函数请求参数可空的两种方式

以下面定义的asp.net core WebApi函数为例&#xff0c;客户端发送申请时&#xff0c;默认三个参数均为必填项&#xff0c;不填会报错&#xff0c;如下图所示&#xff1a; [HttpGet] public string GetSpecifyValue(string param1,string param2,string param3) {return $"…

【PSINS工具箱】EKF与UKF滤波

描述 对工具箱SINS/GPS&#xff0c;153例程的修改&#xff0c;将EKF和UKF放在一个文件里面&#xff0c;一次运行可以得到两个滤波的结果。 片段 运行截图 程序完整源代码 在有工具箱的情况下&#xff0c;直接运行此代码&#xff0c;即可得到结果 % 基于PSINS工具箱的IMU数据…

腾讯云轻量2核2G3M云服务器优惠价格61元一年,限制200GB月流量

腾讯云轻量2核2G3M云服务器优惠价格61元一年&#xff0c;配置为轻量2核2G、3M带宽、200GB月流量、40GB SSD盘&#xff0c;腾讯云优惠活动 yunfuwuqiba.com/go/txy 活动链接打开如下图&#xff1a; 腾讯云轻量2核2G云服务器优惠价格 腾讯云&#xff1a;轻量应用服务器100%CPU性能…

pyqt 创建右键菜单栏

class MainModule(QMainWindow, Ui_MainWindow):def __init__(self):super().__init__(parentNone)self.setupUi(self)# 允许出现菜单栏self.tableWidget.setContextMenuPolicy(Qt.CustomContextMenu)# 对空间添加右键菜单栏处理 self.tableWidget.customContextMenuRequested.…

Mac 版 IDEA 中配置 GitLab

一、安装Git 在mac终端输入Git检测指令&#xff0c;可以通过git命令查看Git是否安装过&#xff0c;如果没有则会弹出安装按钮&#xff0c;如果安装过则会输出如下信息。 WMBdeMacBook-Pro:~ WENBO$ git usage: git [--version] [--help] [-C <path>] [-c namevalue][--…

6.5物联网RK3399项目开发实录-驱动开发之LCD显示屏使用(wulianjishu666)

90款行业常用传感器单片机程序及资料【stm32,stc89c52,arduino适用】 链接&#xff1a;https://pan.baidu.com/s/1M3u8lcznKuXfN8NRoLYtTA?pwdc53f LCD使用 简介 AIO-3399J开发板外置了两个LCD屏接口&#xff0c;一个是EDP&#xff0c;一个是LVDS&#xff0c;接口对应板…

算法编程:计算斐波那契数列

实现代码&#xff1a;C 实现方法&#xff1a;通过递推法、递归法、矩阵快速幂方法 适用&#xff1a; 范围小且单次查询时&#xff0c;可以不用记忆化处理。 范围大或多次查询时&#xff0c;应使用记忆化处理。 时间复杂度&#xff1a; 递归法&#xff1a;O(n^2)-->递推法(…

【保姆级教程】YOLOv3图像目标检测:训练自己的数据集

一、YOLOv3图像目标检测原理 二、YOLOv3代码及预训练权重下载 2.1 下载yolov3代码 这里使用的是B站大佬Bubbliiiing复现的yolov3代码 仓库地址&#xff1a; https://github.com/bubbliiiing/yolo3-pytorch 2.2 下载模型预训练权重unet_resnet_medical.pth 链接&#xff1a…

【博弈论3——二人博弈的纳什均衡】

1.俾斯麦海之战 2. 零和博弈的定义 零和博弈&#xff08;Zero-Sum Game&#xff09;是一种博弈论的基本概念&#xff0c;指的是在博弈过程中&#xff0c;博弈参与者之间的收益和损失之和总是一个常数&#xff0c;特别是总和为零。即博弈一方的收益必然等于另一方的损失&#x…

贪吃蛇:从零开始搭建一个完整的小游戏

目录 导语&#xff1a; 一、游戏框架 二、蛇的实现 三、绘制游戏界面 四、食物 五、移动蛇 六.得分系统&#xff0c;是否吃到食物 七、检查碰撞 八、处理按键事件 九、得分系统 十、游戏状态管理 导语&#xff1a; 贪吃蛇这个经典的小游戏&#xff0c;我上学的时候就…

QT记事本

QT记事本 1.概述 2.界面  2.1 界面布局  2.2 UI美化stylesheet   2.2.1 准备   2.2.2 stylesheet   2.2.3 效果 2.3 窗口大小调整与子控件自适应 3.信号与槽  3.1 简述  3.2 信号与槽设置   3.2.1 UI控件设置   3.2.2 UI转到槽&#xff08;自动连接&am…

Jamba LLM模型:破解大型上下文窗口挑战的AI新星

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

JBPM学习(三):管理流程定义,java集合面试题

Test public void findAll() { // 查询 List list processEngine.getRepositoryService()// .createProcessDefinitionQuery()// .orderAsc(ProcessDefinitionQuery.PROPERTY_KEY)//排序条件 //.count()查询出总数量 //.page(0, 100)分页&#xff0c;取出前100条记录 …

【漏洞复现】WordPress Plugin LearnDash LMS 敏感信息暴漏

漏洞描述 WordPress和WordPress plugin都是WordPress基金会的产品。WordPress是一套使用PHP语言开发的博客平台。该平台支持在PHP和MySQL的服务器上架设个人博客网站。WordPress plugin是一个应用插件。 WordPress Plugin LearnDash LMS 4.10.2及之前版本存在安全漏洞&#x…

遥感动态监测技术

很多人对动态监测和动态检测两个名词有疑惑。我们可以这样理解&#xff0c;动态监测是一个广义的名词&#xff0c;泛指数据预处理、变化信息发现与提取、变化信息挖掘与应用等&#xff0c;以对整个流程的叙述。动态检测是一个狭义的名词&#xff0c;主要指部分数据预处理、变化…

C++list的模拟实现

为了实现list&#xff0c;我们需要实现三个类 一、List的节点类 template<class T> struct ListNode {ListNode(const T& val T()):_pPre(nullptr),_pNext(nullptr),_val(val){}ListNode<T>* _pPre;ListNode<T>* _pNext;T _val; }; 二、List的迭代器…

JAVAEE之CSS

1.CSS 是什么&#xff1f; 层叠样式表 (Cascading Style Sheets). CSS 能够对网页中元素位置的排版进行像素级精确控制, 实现美化页面的效果. 能够做到页面的样式和结构分离. 1.1 CSS和HTML的区别 CSS&#xff0c;全称为层叠样式表(Cascading Style Sheets)&#xff0c;是…

RocketMQ(版本4.9.4)+RocketMQ_Dashbord环境搭建(生产者、消费者的前置环境搭建)

一、官方网站下载 RocketMQ源码包 https://rocketmq.apache.org/zh/docs/4.x/introduction/02quickstart 二、把rocketMQ上传到Linux环境下解压&#xff0c;编译&#xff0c;执行以下命令&#xff08;需要提前装jdk和maven并配置好环境变量&#xff09; unzip rocketmq-all-4…

AtCoder Beginner Contest 347 (ABCDEF题)视频讲解

A - Divisible Problem Statement You are given positive integers N N N and K K K, and a sequence of length N N N, A ( A 1 , A 2 , … , A N ) A(A_1,A_2,\ldots,A_N) A(A1​,A2​,…,AN​). Extract all elements of A A A that are multiples of K K K, divi…

计算机的组成原理

1.简单常识介绍 1.1认识一下计算机的真实相貌 1.2怎么通过电信号传二进制 工作原理 cpu的针脚也就跟我们的手指一样用来接收高低电频&#xff0c;来判断2进制数据 cpu和数据交互的原理 2.计算机系统 软件介绍 硬件的发展历史 电子管时代 晶体管时代 中小规模集成电路 大规模…