一、Vue是什么

  Vue是一款用于构建用户界面渐进式的JavaScript框架

  官网:Vue.js - 渐进式 JavaScript 框架 | Vue.js

其核心特性包括:

  • 响应式数据绑定:通过 Vue 的响应式系统,数据变化会自动反映到视图,减少手动 DOM 操作。
  • 组件化开发:将界面拆分为独立可复用的组件,便于维护和协作。
  • 虚拟 DOM(Virtual DOM):通过 JavaScript 对象模拟 DOM 结构,减少真实 DOM 操作,提升性能。
  • 渐进式集成:可从一个组件开始逐步扩展,也可与其他库(如 React 生态工具)结合使用。

二、Vue的使用

    1、  操作步骤:

  1. 准备一个html文件,引入Vue模块 (参考官方文档 )【注意:模块化的js,引入时,需要设置 type="module"

  2. 创建Vue程序的应用实例

  3. 准备元素(div),交给Vue控制

<body><div id="app"><h2>{{ message }}</h2></div><!-- 引入 Vue 3 --><script type="module">import { createApp, ref } from 'https://unpkg.com/vue@3/dist/vue.esm-browser.js'// 创建 Vue 应用实例并挂载到 #app 元素上createApp({data() {return {message: 'Hello, Vue 3!'};}}).mount('#app');</script>
</body>

注意:

  • Vue中定义数据,必须通过data方法来定义,data方法返回值是一个对象,在这个对象中定义数据。

  • 插值表达式中编写的变量,一定是Vue中定义的数据,如果插值表达式中编写了一个变量,但是在Vue中未定义,将会无效显示 。

  • Vue应用实例接管的区域是 '#app',超出这个范围,就不受Vue控制了,所以vue的插值表达式,一定写在 <div id="app">...</div> 的里面 。

 二、Vue指令

    指令:指的是HTML 标签上带有 v- 前缀的特殊属性,不同指令具有不同含义,可以实现不同的功能 。

指令作用
v-for列表渲染,遍历容器的元素或者对象的属性
v-bind为HTML标签绑定属性值,如设置 href , css样式等
v-if/v-else-if/v-else条件性的渲染某元素,判定为true时渲染,否则不渲染
v-show根据条件展示某元素,区别在于切换的是display属性的值
v-model在表单元素上创建双向数据绑定
v-on为HTML标签绑定事件

1、v-for

作用:列表渲染,遍历容器的元素或者对象的属性

语法:<tr v-for="(item,index) in items" :key="item.id">{{item}}</tr>

参数:

  • items 为遍历的数组

  • item 为遍历出来的元素

  • index 为索引/下标,从0开始 ;可以省略,省略index语法: v-for = "item in items"

key:

  • 作用:给元素添加的唯一标识,便于vue进行列表项的正确排序复用,提升渲染性能

  • 推荐使用id作为key(唯一),不推荐使用index作为key(会变化,不对应)

注意:遍历的数组,必须在data中定义.

操作如下表的数据

上图的数据使用数组来存放数据:

 <!-- vue数据绑定 --><script type="module">import { createApp, ref } from 'https://unpkg.com/vue@3/dist/vue.esm-browser.js'createApp({data() {return {users: [{ id: 1, name: '徐帆', images: 'https://picsum.photos/30/30?random=1', gender: '1', position: '1', hireDate: '2024-06-09', lastActive: '2024-07-30 14:59:38' },{ id: 2, name: '崔威威', images: 'https://picsum.photos/30/30?random=2', gender: '1', position: '2', hireDate: '2025-05-09', lastActive: '2025-07-01 00:00:00' },{ id: 3, name: '张翠花', images: 'https://picsum.photos/30/30?random=3', gender: '2', position: '2', hireDate: '2024-05-15', lastActive: '2024-06-18 09:30:15' }]};}}).mount('.container');</script>

 再遍历每一条数据:

  <tbody><!-- 数据加载tr... --><tr v-for="(user,index) in users" :key="user.id"><td>{{index + 1}}</td><td>{{user.name}}</td><td>{{user.gender==1?'男':'女'}}</td><!--插值表达式不能直接使用在标签中--><td><img src="{{user.image}}" class="avatar" alt="{{user.name}}"></td><td>{{user.position}}</td><td>{{user.hireDate}}</td><td>{{user.lastActive}}</td><td><button class="action-btn">编辑</button><button class="action-btn">删除</button></td></tr></tbody>

 2、v-bind

作用:动态为HTML标签绑定属性值,如设置href,src,style样式等。

语法:v-bind:属性名="属性值" <img v-bind:src="item.image" width="30px">

简化:属性名="属性值" <img :src="item.image" width="30px">

注意:v-bind 所绑定的数据,必须在data中定义/或基于data中定义的数据而来。

    <!--动态为HTML标签绑定属性值--><td><img  v-bind:src="user.images" class="avatar" :alt="user.name"></td>

 3、v-if& v-show

作用:这两类指令,都是用来控制元素的显示与隐藏的

v-if语法:v-if="表达式",表达式值为 true,显示;false,隐藏

  • 原理:基于条件判断,来控制创建或移除元素节点(条件渲染)

  • 场景:要么显示,要么不显示,不频繁切换的场景

  • 其它:可以配合 v-else-if / v-else 进行链式调用条件判断

如职位判断操作:

                <!--v-if..v-else-if..v-else 来控制元素的显示或隐藏--><td><span v-if="user.position == '1'">班主任</span><span v-else-if="user.position == '2'">讲师</span><span v-else-if="user.position == '3'">学工主管</span><span v-else-if="user.position == '4'">教学主管</span><span v-else-if="user.position == '5'">咨询师</span><span v-else>未知职位</span></td>

再通过右键 | 审查元素  查看Element:

总之:使用v-if确实是根据条件判断,是否渲染这个元素节点,条件成立才会渲染。

v-show语法:v-show="表达式",表达式值为 true,显示;false,隐藏

  • 原理:基于CSS样式display来控制显示与隐藏

  • 场景:频繁切换显示隐藏的场景

如职位判断操作:

  <!-- 使用v-show来显示职位 --><td>    <span v-show="user.position == '1'">班主任</span><span v-show="user.position == '2'">讲师</span><span v-show="user.position == '3'">学工主管</span><span v-show="user.position == '4'">教学主管</span><span v-show="user.position == '5'">咨询师</span></td>

再通过右键 | 审查元素  查看Element:

总之:使用 v-show 指令来渲染展示,所有元素都会渲染,只不过是通过控制display这个css样式,来决定元素是展示还是隐藏。 

4、v-model

作用:在表单元素上使用,双向数据绑定。可以方便的 获取设置 表单项数据

语法v-model="变量名"

这里的双向数据绑定,是指 Vue中的数据变化,会影响视图中的数据展示 。 视图中的输入的数据变化,也会影响Vue的数据模型 。

注意:v-model 中绑定的变量,必须在data中定义。

如搜索栏的表单项,绑定数据:

  <form class="search-form"><div class="form-group"><label for="name">姓名</label><input type="text" id="name" v-model="findForm.name" placeholder="请输入姓名"></div><div class="form-group"><label for="gender">性别</label><select id="gender" v-model="findForm.gender"><option value="">全部</option><option value="1">男</option><option value="2">女</option></select></div><div class="form-group"><label for="position">职位</label><select id="position" v-model="findForm.position"><option value="">全部</option><option value="1">班主任</option><option value="2">讲师</option><option value="3">学工主管</option><option value="4">教学主管</option><option value="5">咨询师</option><option value="6">其他</option></select></div><button class="btn btn-primary">查询</button><button class="btn btn-secondary">清空</button></form>

测试

安装vue插件:极简插件 - 搜索插件 - vue

打开谷歌浏览器| 完成更新

将下载的文件解压,再拖拉到这里,再添加 

注意:单击详情,修改一下启用状态

操作如下: 

5、v-on

作用:为html标签绑定事件(添加时间监听)

语法v-on:事件名="方法名"

<input type="button" value="查询" v-on:click="searchUsers">

简写  @事件名="…"

<input type="button" value="清空" @click="clearForm">

<button class="btn btn-primary" v-on:click="searchUsers">查询</button><button class="btn btn-secondary" @click="clearForm">清空</button>

 运行如下:

注意: methods函数中的this指向Vue实例,可以通过this获取到data中定义的数据。

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

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

相关文章

JAVA-JWT

JWT简介 JSON Web Token&#xff08;JWT&#xff09;是一个非常轻巧的规范&#xff0c;这个规范允许我们使用 JWT 在用户和服务器之间传递安全可靠的信息。一个 JWT 实际上就是一个字符串&#xff0c;它由三部分组成&#xff0c;头部、载荷与签名。前两部分需要经过 Base64 编…

UI前端大数据处理挑战与对策:保障数据安全与隐私

hello宝子们...我们是艾斯视觉擅长ui设计、前端开发、数字孪生、大数据、三维建模、三维动画10年经验!希望我的分享能帮助到您!如需帮助可以评论关注私信我们一起探讨!致敬感谢感恩! 一、引言&#xff1a;大数据时代的前端安全新挑战 在数字化转型的浪潮中&#xff0c;前端已从…

DTO、VO、POJO与实体类使用方案(结合Mapper.xml)

结合MyBatis的Mapper.xml文件&#xff0c;展示完整的层级数据流转和数据库操作。 1. 实体类优化&#xff08;Entity&#xff09; // User.java Data NoArgsConstructor AllArgsConstructor TableName("sys_user") public class User {TableId(type IdType.AUTO)pr…

开源|VDBBench 1.0正式官宣,完全复刻业务场景,支持用户自定义数据集

宣布个好消息&#xff0c;大家期待已久的VDBBench 1.0更新啦。 尝鲜链接&#xff1a; https://github.com/zilliztech/VectorDBBench/releases/tag/v1.0.0 对于这个功能的更新&#xff0c;我们准备了很久&#xff0c;也思考了很多。 因为对我们来说&#xff0c;VDBBench 从来不…

7,FreeRTOS列表与列表项的插入删除

一、实验目标 创建三个动态任务&#xff0c;栈空间大小均为128字。startTask、Task1、Task2。startTask仅运行一次&#xff0c;负责task1、task2任务的创建&#xff0c;startTask任务的删除。Task1负责初始化列表、列表项123&#xff0c;并进行列表项的插入实验与删除实验。Tas…

两款支持3D地图的WebGIS框架对比

前言 在当前的WebGIS技术发展中&#xff0c;3D地形图的可视化已经成为一个非常重要的功能&#xff0c;尤其是在城市规划、环境监测和虚拟旅游等领域中的应用。对于开发者而言&#xff0c;选择一个强大且适合的WebGIS框架是实现这些功能的关键。目前市场上较为流行的支持3D地形…

Github 2025-06-26 Go开源项目日报Top10

根据Github Trendings的统计,今日(2025-06-26统计)共有10个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量Go项目10PureBasic项目1使用Gitleaks保护和发现机密信息 创建周期:2203 天开发语言:Go协议类型:MIT LicenseStar数量:14645 个Fork数量:13…

C++实现鱿鱼、羊了个羊、扫雷、原神模拟

C++ 鱿鱼游戏模拟实现 鱿鱼游戏中的经典场景可以通过C++模拟实现,例如“红绿灯”游戏。以下是一个简化版本的核心代码框架: #include <iostream> #include <thread> #include <chrono> #include <cstdlib> #include <ctime> #include <ve…

从用户到权限:解密 AWS IAM Identity Center 的授权之道

大家好&#xff0c;今天我们来解决一个非常具体的实战问题&#xff1a;如何让 IAM Identity Center 中创建的用户真正获得 AWS 账户的操作权限&#xff0c;从而取代老旧的 IAM 用户管理模式&#xff1f; 如果我们盯着用户详情页&#xff0c;想找一个“附加角色”的按钮&#x…

在 Spring Boot 中使用 MyBatis-Plus 的详细教程

前言 在现代的 Java Web 开发中&#xff0c;Spring Boot 和 MyBatis 已经成为主流框架组合。为了提升开发效率和简化数据库操作&#xff0c;MyBatis-Plus&#xff08;简称 MP&#xff09;应运而生。它是一个 MyBatis 的增强工具&#xff0c;在 MyBatis 的基础上只做增强不做改…

AI生成内容泛滥时代:从“袋鼠登机“视频看AI鉴伪与游戏智能的未来

近年来&#xff0c;AI生成内容的质量突飞猛进&#xff0c;从文本到图像再到视频&#xff0c;几乎达到了以假乱真的程度。近期一段"人类在飞机上吵架看呆袋鼠"的视频在社交网络疯传&#xff0c;获得数千万次观看后&#xff0c;才被证实是AI生成内容&#xff0c;这一事…

为什么在linux中不能直接使用pip进行安装

您好&#xff0c;这是一个非常深刻且关键的问题&#xff0c;触及了 Linux 系统管理与 Python 开发实践的核心原则。理解了这一点&#xff0c;您就真正开始像一位经验丰富的开发者那样思考了。 简单来说&#xff0c;答案是&#xff1a;为了保护操作系统自身的稳定和完整性。 让…

IDEA相关配置记录

IDEA相关配置记录 参考链接&#xff1a; 参考链接&#xff1a; 1、安装jdk D:\Program Files\Java\jdk-21 https://blog.csdn.net/2302_81410974/article/details/142031416 2、安装maven D:\Java\workspace-maven\apache-maven-3.9.10 . ├── LICENSE ├── NOTICE ├──…

FastGPT私有化部署完整指南

&#x1f680; FastGPT 私有化部署完整指南 &#x1f4cb; 环境要求 硬件要求 最低配置:CPU: 4核内存: 8GB存储: 50GB网络: 稳定互联网连接推荐配置:CPU: 8核内存: 16GB存储: 100GB SSD网络: 10Mbps带宽软件环境 必需软件:- Docker: > 20.10.0- Docker Compose: > 2.…

系统架构设计师论文分享-基于架构的软件设计方法及应用

我的软考历程 摘要 2023年2月&#xff0c;我所在的公司做了开发纱线MES系统的决定&#xff0c;该系统为国内纱线工厂提供SAAS服务&#xff0c;旨在提高纱线工厂的智能化和数字化水平。我在该项目中被任命为系统架构设计师&#xff0c;全面掌管该项目的架构设计工作。本文将结…

团结引擎发布纯鸿蒙应用

大家好&#xff0c;我是阿赵。   这里尝试一下用团结引擎发布纯鸿蒙系统的应用。 一、 安装鸿蒙系统发布需要的组件 在团结引擎的Hub里面找到Add modules: 然后找到OpenHarmony的支持选项&#xff0c;由于我已经安装过了&#xff0c;所以会显示Installed&#xff0c;如果没…

C++基础(FreeRDP编译)

安装 先安装openssl 保姆级OpenSSL下载及安装教程,OpenSSL下载及安装教程-CSDN博客 vcpkg integrate install 安装 vcpkg install zlib vcpkg install ffmpeg:x64-windows 编译指令 PS D:\freerdp\FreeRDP\build> cmake .. -G "Visual Studio 17 2022" -A x…

用celery作为信息中间件

要在 Django 的 settings.py 中设置 Redis 作为 Celery 的 broker 和(可选)backend,你需要添加如下配置: 安装依赖(如未安装): pip install celery redis在 settings.py 中添加 Celery 配置(推荐放在文件底部): # Celery 配置 CELERY_BROKER_URL = redis://127.0.0.1…

Postman介绍及使用

Postman 是一个强大的 API 开发、测试和文档化工具&#xff0c;广泛用于开发者、测试人员和 API 设计者。以下是 Postman 的核心使用指南&#xff0c;涵盖基础操作到进阶功能&#xff1a; 一、基础使用 安装与界面 下载&#xff1a;官网下载&#xff08;支持 Windows/macOS/Lin…

Android14音频子系统-ASoC-ALSA之DAPM电源管理子系统

文章目录 概述1&#xff09;codec对象-WM89602&#xff09;ALSA下的kcontrol的构造与使用3&#xff09;ASOC-ALSA下的kcontrol构造与使用1、通用寄存器对象 - kcontrol2、DAPM下的寄存器对象-widget3、如何构造widget&#xff1f;4、抽象对象widget、route与path1&#xff09;r…