Vue的学习 —— <vue指令>

ops/2024/9/20 7:17:15/ 标签: vue.js, 学习, javascript, 大数据, 数据可视化

目录

前言

正文

内容渲染指令

内容渲染指令的使用方法

v-text

v-html

属性绑定指令

双向数据绑定指令

事件绑定指令

条件渲染指令

循环列表渲染指令

侦听器


前言

在完成Vue开发环境的搭建后,若想将Vue应用于实际项目,首要任务是学习Vue的基础知识。只有掌握了Vue框架的核心知识,我们才能依据实际需求,游刃有余地进行项目开发。接下来详细Vue开发的基础知识。

正文

内容渲染指令

内容渲染指令用于渲染DOM元素的内容。常见的内容渲染指令如下:

  • v-text:v-text用于渲染DOM元素的文本内容,如果文本内容中包含HTML标签,那么浏览器不会对其进行解析。v-text的语法格式如下:

    <标签名 v-text="数据名"></标签名>
  • v-html:在使用Vue进行内容渲染时,如果内容中包含HTML标签并且希望这些标签被浏览器解析,则可以使用v-html。v-html用于渲染DOM元素的HTML内容,其用法与v-text相似。v-html的语法格式如下:

    <标签名 v-html="数据名"></标签名>

内容渲染指令的使用方法

下面演示内容渲染指令的使用方法:

v-text

  1. 创建src\components\VTextDemo.vue文件用于存放演示代码,写入如下代码:

    <template><div v-text="message"></div>
    </template>
    <script setup>const message = '<span>盛年不重来,一日难再晨</span>'
    </script>
  2. 修改src\main.js文件,切换页面中显示的组件

    import App from './components/VTextDemo.vue'
  3. 保存代码,使用浏览器访问http://127.0.0.1:5173/,页面打开后效果如下图所示:

v-html

  1. 创建src\components\VHtmlDemo.vue文件用于存放演示代码,写入如下代码:

    <template><div v-html="message"></div></template><script setup>const message = '<strong>盛年不重来,一日难再晨</strong>'</script>
  2. 修改src\main.js文件,切换页面中显示的组件

    import App from './components/VHtmlDemo.vue'
  3. 保存代码,使用浏览器访问http://127.0.0.1:5173/,页面打开后效果如下图所示

属性绑定指令

在Vue开发中,有时需要绑定DOM元素的属性,从而更好地控制属性的值,此时可以使用属性绑定指令v-bind来实现。v-bind的语法格式如下:

<标签名 v-bind:属性名="数据名"></标签名>
<!-- v-bind还支持将属性与字符串拼接表达式绑定,示例代码如下。-->
<div :id="'list' + index"></div>

下面演示v-bind的使用方法:

  1. 创建src\components\VBindDemo.vue文件用于存放演示代码,写入如下代码:

    <template><p><input type="text" v-bind:placeholder="username"></p><p><input type="password" v-bind:placeholder="password"></p>
    </template>
    <script setup>const username = '请输入您的用户名'const password = '请输入您的密码'
    </script>
  2. 修改src\main.js文件,切换页面中显示的组件

    import App from './components/VBindDemo.vue'
  3. 保存代码,使用浏览器访问http://127.0.0.1:5173/,页面打开后效果如下图所示:

双向数据绑定指令

Vue为开发者提供了v-model指令来实现双向数据绑定,使用它可以在input、textarea和select元素上创建双向数据绑定,它会根据使用的元素自动选取对应的属性和事件组合,负责监听用户的输入事件并更新数据。

v-model内部会为不同的元素绑定不同的属性和事件,具体如下:

  • textarea元素和text类型的input元素绑定value属性和input事件,意味着用户输入的内容将实时反映在元素的value属性上,同时input事件也会被触发

  • checkbox类型的input元素和radio类型的input元素与checked属性和change事件绑定,当用户选择或取消选择这些元素时,checked属性将更新,并触发change事件。

  • select元素绑定value属性和change事,当用户从下拉列表中选择一个选项时,该选项的值将更新元素的value属性,并触发change事件

v-model的语法格式如下:

<标签名 v-model="数据名"></标签名>

下面演示v-modell实现输入框的值与变量保持同步:

  1. 创建src\components\VModelDemo.vue文件用于存放演示代码,写入如下代码:

    <template>请输入姓名:<input type="text" v-model="username"><div>姓名是:{{ username }}</div>
    </template>
    <script setup>
    import { ref } from 'vue'
    const username = ref('zhangsan')
    </script>
  2. 修改src\main.js文件,切换页面中显示的组件

    import App from './components/VModelDemo.vue'
  3. 保存代码,使用浏览器访问http://127.0.0.1:5173/,页面打开后初始效果如下图所示:

  4. 在输入框中输入“李四”后,页面效果如下图所示:

事件绑定指令

在Vue开发中,有时需要给DOM元素绑定事件,从而利用事件实现交互效果,这时可以利用事件绑定指令v-on来实现。v-on的语法格式如下:

<标签名 v-on:事件名="事件处理器"></标签名>

在上述语法格式中,事件名即DOM中的事件名,例如click、input、keyup等;事件处理器可以是方法名或内联JavaScript语句。如果逻辑复杂,事件处理器建议使用方法名,方法需要在<script>标签中定义;如果逻辑简单,只有一行代码,则可以使用内联JavaScript语句。另外,v-on还有简写形式,可以将“v-on:事件名”简写为“@事件名”。

下面演示v-on指令的使用方法:

  1. 创建src\components\VOnDemo.vue文件用于存放演示代码,写入如下代码:

    <template><button @click="printInfo">输出信息</button>
    </template>
    <script setup>
    const printInfo = () => {console.log('Hello World!!!')
    }
    </script>
  2. 修改src\main.js文件,切换页面中显示的组件

    import App from './components/VOnDemo.vue'
  3. 保存代码,使用浏览器访问http://127.0.0.1:5173/,按F12打开调试控制台,打开后初始效果如下图所示:

  4. 点击“输出信息”按钮,控制台效果如下图所示:

条件渲染指令

在Vue中,当需要根据不同的判断结果显示不同的DOM元素时,可以通过条件渲染指令来实现。条件渲染指令可以辅助开发者按需控制DOM元素的显示与隐藏。条件渲染指令如下:

  • v-if:根据布尔值切换元素的显示或隐藏状态,本质是通过操作DOM元素来切换显示状态

    • 当给定的值为true时,元素存在于DOM树中

    • 当给定的值为false时,元素从DOM树中移除

  • v-show:v-show与v-if都用来决定某一个元素是否在页面上显示出来。v-show的原理是通过为元素添加或移除display: none样式来实现元素的显示或隐藏。当需要频繁切换某个元素的显示或隐藏时,使用v-show会更节省性能开销;而当只需要切换一次显示或隐藏时,使用v-if更合理。

下面演示条件渲染指令的用法:

  1. 创建src\components\ConditionDemo.vue文件用于存放演示代码,写入如下代码:

    <template>小明的学习评定等级为:<p v-if="type === 'A'">优秀</p><p v-else-if="type === 'B'">良好</p><p v-else>差</p><button @click="type = 'A'">切换成优秀</button><button @click="type = 'B'">切换成良好</button><button @click="type = 'C'">切换成差</button><p v-if="flag">通过v-if控制的元素</p><p v-show="flag">通过v-show控制的元素</p><button @click="flag = !flag">显示/隐藏</button>
    </template>
    <script setup>
    import { ref } from 'vue'
    const type = ref('B')
    const flag = ref(true)
    </script>
  2. 修改src\main.js文件,切换页面中显示的组件

    import App from './components/ConditionDemo.vue'
  3. 保存代码,使用浏览器访问http://127.0.0.1:5173/,点击页面中的按钮,观察页面变化情况,如下图所示:

循环列表渲染指令

例如在开发购物应用时,为了方便用户查找商品信息,通常会以商品列表的形式展示商品信息。在商品列表中,每件商品的结构都是相同的,如果每件商品的结构都要手动定义,会非常麻烦。为此,Vue提供了列表渲染指令v-for。开发者只需在模板中定义一件商品的结构,v-for便会根据开发者提供的数据自动渲染商品列表中所有的商品。

使用v-for(根据list数组中的元素)渲染列表后,当在list数组中删除一个元素后,index会发生变化,v-for会重新渲染列表,导致性能下降。为了给v-for一个提示,以便它能跟踪每个节点的身份,从而对现有元素进行重用和重新排序,建议通过key属性为列表中的每一项提供具有唯一性的值,示例代码如下:

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

下面演示v-for指令用法:

  1. 创建src\components\VForDemo.vue文件用于存放演示代码,写入如下代码:

    <template><div v-for="(item, index) in list" :key="index">索引:{{ index }} --- 元素的内容是:{{ item }}</div></template><script setup>import { reactive } from 'vue'const list = reactive(['HTML', 'CSS', 'JavaScript'])</script>
  2. 修改src\main.js文件,切换页面中显示的组件

    import App from './components/VForDemo.vue'
  3. 保存代码,使用浏览器访问http://127.0.0.1:5173/,页面效果如下图所示:

侦听器

在Vue中,开发者可以自定义方法来进行数据的更新操作,但是不能自动监听数据的状态。如果想在数据更新后自动进行相应的操作,可以通过侦听器来实现。

侦听器通过watch()函数定义,watch()函数的语法格式如下:

watch(侦听器的来源, 回调函数, 可选参数)

watch()函数有3个参数,下面对这3个参数分别进行讲解:

第1个参数是侦听器的来源,侦听器的来源可以有以下4种。

  • 一个函数,返回一个值

  • 一个响应式数据

  • 一个响应式对象

  • 一个由以上类型的值组成的数组

第2个参数是数据发生变化时要调用的回调函数,这个回调函数的

第1个参数表示新值,即数据发生变化后的值,

第2个参数表示旧值,即数据发生变化前的值。

第3个参数是可选参数,它是一个对象,该对象有以下2个常用选项。

  • deep:默认情况下,当侦听一个对象时,如果对象中的属性值发生了变化,则无法被监听到。如果想监听到,可以将该选项设为true,表示进行深度监听。该选项的默认值为false,表示不使用该选项。

  • immediate:默认情况下,组件在初次加载完毕后不会调用侦听器的回调函数,如果想让侦听器的回调函数立即被调用,则需要将选项设为true。该选项的默认值为false,表示不使用该选项。

下面演示watch函数的用法:

  1. 创建src\components\WatchDemo.vue文件用于存放演示代码,写入如下代码:

    <template><input type="text" v-model="cityName">
    </template>
    <script setup>
    import { watch, ref } from 'vue'
    const cityName = ref('beijing')
    watch(cityName, (newVal, oldVal) => {console.log(newVal, oldVal)
    })
    </script>
  2. 修改src\main.js文件,切换页面中显示的组件

    import App from './components/WatchDemo.vue'
  3. 保存代码,使用浏览器访问http://127.0.0.1:5173/,打开开发者控制台,任意输入框内容,观察控制台变化,页面效果如下图所示:


http://www.ppmy.cn/ops/40812.html

相关文章

Java入门基础学习笔记14——数据类型转换

类型转换&#xff1a; 1、存在某种类型的变量赋值给另一种类型的变量&#xff1b; 2、存在不同类型的数据一起运算。 自动类型转换&#xff1a; 类型范围小的变量&#xff0c;可以直接赋值给类型范围大的变量。 byte类型赋值给int类型&#xff0c;就是自动类型转换。 pack…

Hugging Muti Agent:第一章

Hugging Muti Agent系列文章目录 学习资料链接&#xff1a;Hugging Muti Agent&#xff08;二月学习&#xff09; 文章目录 Hugging Muti Agent系列文章目录第一章&#xff1a;前期准备1.1 获取MetaGPT1.2 配置MetaGPT1.2.1 调用 ChatGPT API 服务 1.3 首次尝试 第一章&#…

爬虫工作量由小到大的思维转变---<第七十四章 > Scrapy爬虫关闭方法(close)的机制及其在爬虫优化中的重要性

前言 Scrapy爬虫也有一个至关重要的功能——close方法&#xff0c;它控制着爬虫的“生命周期”。本论文旨在探讨Scrapy框架中close方法的核心作用和定义&#xff0c;以及它在爬虫管理与优化过程中的重要性。我们将深入探索如何通过这个强大的功能去优雅地结束一个爬取任务&…

【Unity】Unity项目转抖音小游戏(二)云数据库和云函数

业务需求&#xff0c;开始接触一下抖音小游戏相关的内容&#xff0c;开发过程中记录一下流程。 抖音云官方文档&#xff1a;https://developer.open-douyin.com/docs/resource/zh-CN/developer/tools/cloud/develop-guide/cloud-function-debug 1.开通抖音云环境 抖音云地址&a…

【springboot】整合oauth2.0和security,使用图形验证码和邮箱验证码登录

思路 当使用OAuth和Security框架(如Spring Security)进行登录,并且不使用密码而使用验证码时,生成Token的过程通常涉及以下几个步骤: 1.验证码生成与验证: 首先,系统会生成一个图形验证码并将其展示给用户。 用户输入他们看到的验证码。 系统验证用户输入的验证码是否…

docker的使用

docker的使用 1.首先&#xff0c;拉取一个镜像&#xff0c;如 docker pull 镜像名称 # 官方镜像 docker image pull 镜像名称 # 或简写为 docker pull 镜像名称 # 比如 docker pull ubuntu docker pull ubuntu:16.04# 个人镜像 docker pull 仓库名称/镜像名称 docker pull …

Linux sndconfig命令教程:如何在Linux下设置声卡(附实例详解和注意事项)

Linux sndconfig命令介绍 sndconfig&#xff08;Sound Configuration&#xff09;是一个用于设置声卡的命令。它支持即插即用&#xff08;Plug and Play&#xff0c;PnP&#xff09;设置&#xff0c;可以自动检测并设置PnP声卡。sndconfig命令可以帮助用户在Linux系统中配置声…

如何提高自己的全局视野?

以下是一些可以帮助提高全局视野的方法&#xff1a; 1. 广泛学习不同领域知识&#xff1a;包括但不限于技术相关的各个领域、业务知识、行业动态等&#xff0c;拓宽知识面。 2. 参与大型项目&#xff1a;积极投身到复杂的、规模较大的项目中&#xff0c;在实践中感受和理解系…

计算机毕业设计hadoop+spark+hive知识图谱bilibili视频数据分析可视化大屏 视频推荐系统 预测系统 实时计算 离线计算 数据仓库

研究意义 随着互联网的快速发展&#xff0c;人们面临着海量的视频内容&#xff0c;如何从这些繁杂的视频中找到自己感兴趣的内容成为一个重要的问题[1]。推荐系统作为一种解决信息过载问题的重要工具&#xff0c;能够根据用户的历史行为和偏好&#xff0c;预测用户可能感兴趣的…

nginx 负载均衡配置详解

基于 ${nginx_home}/conf/nginx.conf 文件配置实现&#xff0c;如下&#xff1a; http {# 定义server地址upstream server_group {server 192.168.xxx.1:8080;server 192.168.xxx.2:8080;server 192.168.xxx.3:8080;}server {listen 80;location / {root html;index …

Spring框架概述

目录 1. Spring框架的起源 2. Spring框架的构成 3. Spring的发展历程 4. Spring的开发环境 4.1. Maven安装与配置 &#xff08;1&#xff09;Maven的下载与安装 &#xff08;2&#xff09;配置Maven的环境变量 &#xff08;3&#xff09;本地仓库的配置 &#xff08;4…

变频器通过Modbus转Profinet网关接电机与PLC通讯在自动化的应用

Modbus转Profinet网关&#xff08;XD-MDPN100/300/600&#xff09;的作用是将Modbus协议转换为Profinet协议&#xff0c;支持Modbus RTU主站/从站&#xff0c;并且Modbus转Profinet网关设备自带网口和串口&#xff0c;既可以实现协议转换的同时&#xff0c;也可以实现接口的转换…

通过EXCEL控制PLC启停电机的一种方法

概述 本例将介绍用微软EXCEL电子表格控制西门子S7-1200 PLC实现电机启停的一种方法。 第1步&#xff1a; 添加PLC设备&#xff0c;选择西门子S7-1214C CPU&#xff0c;设置IP地址&#xff1a;192.168.18.18&#xff0c;子网掩码&#xff1a;255.255.255.0。 第2步&#xff1a…

企业开发基础-JDBC(SQL注入)

JDBC概论 1、JDBC是什么&#xff1f; Java DataBase Connectivity&#xff08;Java语言连接数据库&#xff09; 2、JDBC的本质是什么&#xff1f; JDBC是SUN公司制定的一套接口&#xff08;interface&#xff09; java.sql.*; (这个软件包下有很多接口。) 接…

防火墙技术基础篇:什么是包过滤技术

什么是防火墙包过滤技术 当数据在网络中传输时&#xff0c;它们被分割成小的单元&#xff0c;称为数据包。防火墙的包过滤是一种基本的网络安全技术&#xff0c;用于检查这些数据包并根据预定义的规则决定是否允许它们通过防火墙。 防火墙包过滤是一种关键的网络安全技术&am…

MySQL————创建存储过程函数

存储过程使用大纲 无参数传递 delimiter $$ 声明一个名称为get_student_introduce CREATE PROCEDURE gei_student_introduce() 开始操作 BEGIN 撰写真正在操作DMLDQL都行 SET userName张三; select introduce 简介 from student WHERE userNameuserName; end $$ delimit…

关于我个人的编码规范(C/C++)

文章目录 前言一、文件结构1. 版权和版本声明&#xff08;不是必须&#xff0c;但是我建议看看&#xff09;2. 头文件结构3. 源文件结构 二、排版&#xff08;以 K&R 风格为主&#xff09;1. 缩进与左花括号的位置2. 空行的插入3. 该分行就分行4. 花括号5. 长语句分段6. 空…

跨境网络为何离不开海外静态住宅IP

在全球化日益加深的今天&#xff0c;跨境网络活动已成为商业和个人交流的常态。无论是远程办公、跨境电商还是国际社交&#xff0c;网络连接的稳定性和安全性都至关重要。而海外静态住宅IP作为连接不同国家和地区网络的关键元素&#xff0c;其重要性日益凸显。本文将深入探讨跨…

RabbitMQ 如何使用延迟队列

RabbitMQ 如何使用延迟队列 目录 前置条件场景描述RabbitMQ 延迟队列机制实现步骤 1. 安装 RabbitMQ 延迟队列插件2. 创建延迟队列和交换机3. 发布延迟消息4. 消费延迟消息 示例代码 1. 延迟队列配置2. 发布消息的 Producer 代码3. 消费消息的 Consumer 代码 注意事项 前置条…

代码随想录算法训练营第二十七天|​回溯法理论基础​、第77题. 组合

理论基础 回溯法基本介绍 回溯法也可以叫做回溯搜索法&#xff0c;它是一种搜索的方式。 回溯是递归的副产品&#xff0c;只要有递归就会有回溯。递归函数的下面就是回溯的逻辑 因为回溯的本质是穷举&#xff0c;穷举所有可能&#xff08;暴力法&#xff09;&#xff0c;然…