渐进式JavaScript框架Vue 3 入门
目录
- 前言
- 1. Vue 3 的基础入门
- 1.1 什么是 Vue.js
- 1.2 局部使用 Vue
- 2. Vue 3 的基本配置
- 2.1 准备 HTML 页面并引入 Vue 模块
- 2.2 创建 Vue 应用实例
- 3. Vue 的数据绑定与界面渲染
- 3.1 插值表达式
- 4. 常用指令详解
- 4.1 v-for 指令:列表渲染
- 4.2 v-bind 指令:绑定属性值
- 4.3 v-if 和 v-else-if 指令:条件渲染
- 4.4 v-show 指令:控制显示与隐藏
- 4.5 v-model 指令:双向数据绑定
- 4.6 v-on 指令:事件绑定
- 5. Vue 的整体结构优化
- 结语
前言
随着前端开发技术的不断发展,JavaScript 框架成为构建动态和交互性强的用户界面不可或缺的工具。Vue.js 作为一个渐进式框架,以其灵活性、易用性和强大的数据绑定功能,广泛应用于前端开发中。Vue.js 3 引入了更加现代化的特性,性能提升显著,同时仍然保持了简单易学的特质。本文将从 Vue 3 的基础使用入手,详细讲解如何创建 Vue 应用、实现数据绑定、使用常用指令,帮助读者快速上手 Vue 3 并高效构建用户界面。
1. Vue 3 的基础入门
1.1 什么是 Vue.js
Vue.js 是一个用于构建用户界面的渐进式 JavaScript 框架,具有核心的响应式数据绑定和组合 API,专注于视图层的构建。Vue 通过易学的语法和简洁的代码结构,快速为开发者提供高效、灵活的开发体验。它的渐进式特性允许开发者按需引入功能,从简单的 UI 局部改造逐步过渡到复杂的单页面应用。
1.2 局部使用 Vue
Vue 支持在项目中局部使用,使得我们无需重构整个项目结构,即可通过引入 Vue 的相关模块来使用其功能。接下来我们将通过简单的步骤演示如何在 HTML 页面中使用 Vue。
2. Vue 3 的基本配置
2.1 准备 HTML 页面并引入 Vue 模块
在开始使用 Vue 之前,我们需要准备一个 HTML 文件,并通过 <script type="module">
标签引入 Vue 模块。这一步骤可以帮助我们在项目的局部快速引入 Vue 的功能:
<div id="app"><h1>{{ msg }}</h1>
</div><script type="module">import { createApp } from 'vue'createApp({data() {return {msg: "Hello Vue 3"}}}).mount('#app')
</script>
2.2 创建 Vue 应用实例
createApp
是 Vue 3 提供的用于创建应用实例的 API。通过 createApp
创建的实例,包含 Vue 应用所需的核心功能和数据,最终通过 .mount('#app')
将应用挂载到 HTML 中的指定元素上(如 #app
元素)。在这里,data
函数返回的数据对象 msg
将通过 Vue 的数据绑定功能进行渲染。
3. Vue 的数据绑定与界面渲染
3.1 插值表达式
Vue 提供了插值表达式({{}})来方便地在 HTML 模板中绑定数据。例如在上面的代码中,我们使用 {{ msg }}
表达式,将 JavaScript 对象 data
中的 msg
值渲染到页面上。这种数据绑定使我们可以轻松地在界面上显示动态数据。
4. 常用指令详解
Vue 提供了丰富的指令,帮助开发者实现各种交互和逻辑控制,以下是常用指令的详细介绍。
4.1 v-for 指令:列表渲染
v-for
指令用于列表渲染,支持遍历数组、对象属性等。通过 v-for="(item, index) in items"
的形式,可以在页面上渲染 items
数组中的每个元素。item
表示遍历的元素,index
表示当前元素的索引,从 0 开始。例如:
<ul><li v-for="(item, index) in items" :key="index">{{ index }} - {{ item }}</li>
</ul>
在 data
中,我们需要定义 items
数组,以使 v-for
正常工作。
4.2 v-bind 指令:绑定属性值
v-bind
指令用于动态地为 HTML 标签绑定属性值,例如设置 href
、src
、style
等。v-bind
可以简写为 :
。例如,通过 v-bind:href="url"
,我们可以动态地设置一个链接的 URL:
<a :href="url">点击访问</a>
其中 url
是 data
中定义的数据。在代码中使用 v-bind
可以简化动态数据和视图层的交互。
4.3 v-if 和 v-else-if 指令:条件渲染
v-if
和 v-else-if
是用于条件渲染的指令。v-if
控制节点的创建或移除;当表达式为 true
时,显示节点;为 false
时,移除节点。例如:
<p v-if="isVisible">显示内容</p>
<p v-else>隐藏内容</p>
与 v-show
不同的是,v-if
在条件为 false
时会移除节点,而 v-show
仅是通过 CSS 控制显示和隐藏。
4.4 v-show 指令:控制显示与隐藏
v-show
使用 CSS 的 display
样式来控制元素的显示和隐藏,非常适用于频繁切换显示和隐藏的场景。使用 v-show
的语法与 v-if
类似,但不会移除节点。例如:
<p v-show="isVisible">内容显示或隐藏</p>
在这里,当 isVisible
为 false
时,元素会被隐藏(display: none
),但不会被从 DOM 中移除。
4.5 v-model 指令:双向数据绑定
v-model
是 Vue 提供的双向数据绑定指令,用于表单元素(如输入框、复选框等)。通过 v-model
,表单元素的值可以与数据保持同步,简化了数据的获取和设置。例如:
<input v-model="inputValue" />
<p>输入的内容:{{ inputValue }}</p>
在这里,inputValue
是 data
中的变量。无论是输入框中的值变化,还是代码中对 inputValue
的修改,界面都会实时更新,形成双向绑定的效果。
4.6 v-on 指令:事件绑定
v-on
用于绑定事件,通过 v-on:事件名="函数名"
绑定特定的事件。例如:
<button v-on:click="handleClick">点击我</button>
v-on
可以简写为 @
,例如 @click="handleClick"
。handleClick
方法定义在 methods
中,与 data
平级,使得事件响应逻辑更加清晰。
5. Vue 的整体结构优化
Vue 通过指令和双向绑定简化了开发流程,提升了开发效率。通过 data
、methods
的分离结构,开发者可以清晰地组织数据和功能。此外,Vue 3 提供的组合式 API 让代码逻辑更加灵活,适合复杂应用场景。
结语
Vue.js 作为渐进式 JavaScript 框架,以其灵活性、渐进式特性和强大的数据绑定功能受到广大开发者的喜爱。通过本文的学习,相信读者对 Vue 3 的基本使用和指令应用有了全面的认识。希望大家能够借助 Vue 3 的便捷功能,构建出更加优雅和高效的用户界面。
相关文章:

渐进式JavaScript框架Vue 3 入门
目录 前言1. Vue 3 的基础入门1.1 什么是 Vue.js1.2 局部使用 Vue 2. Vue 3 的基本配置2.1 准备 HTML 页面并引入 Vue 模块2.2 创建 Vue 应用实例 3. Vue 的数据绑定与界面渲染3.1 插值表达式 4. 常用指令详解4.1 v-for 指令:列表渲染4.2 v-bind 指令:绑…...

【真题笔记】21年系统架构设计师案例理论点总结
【真题笔记】21年系统架构设计师案例理论点总结 从机器学习定义的灵活性和学习算法的可扩展性,对解释器+管道过滤器+隐式调用进行对比分析!面向对象方法开发软件,建立对象模型+动态模型+功能模型,三者关联关系!数据架构的设计过程包括:数据定义、数据分布、数据管理,三者…...

PostgreSQL的奥秘:深入探究事务与锁的秘密世界
PostgreSQL事务 1. 概述 在数据库系统中,事务(Transaction)是执行数据库操作的最小逻辑单位。它确保了一组操作的完整性和一致性。事务可以通过显式的 BEGIN、COMMIT 和 ROLLBACK 语句块来控制,也可以在自动提交模式(…...

Python进行GRPC和Dubbo协议的高级测试
在微服务架构日益流行的今天,分布式系统的复杂性不断增加。GRPC 和 Dubbo 协议作为当今互联网行业中常见的高性能通信协议,已经成为服务之间交互的核心。然而,随着服务调用层次的不断增加,如何有效地测试这两种协议,确…...

全程云OA系统QCPES.asmx存在SQL注入漏洞
免责声明: 本文旨在提供有关特定漏洞的深入信息,帮助用户充分了解潜在的安全风险。发布此信息的目的在于提升网络安全意识和推动技术进步,未经授权访问系统、网络或应用程序,可能会导致法律责任或严重后果。因此,作者不对读者基于本文内容所采取的任何行为承担责任。读者在…...

从建立TRUST到实现FAIR:可持续海洋经济的数据管理
1. 引言 随着我们对信息管理方式的信任,我们的社会对数字化数据的以来呈指数级增长。为了跟上大数据的需求,通过不断的努力和持续实践,对“good”数据管理方式的共识也在不断发展和演变。 加拿大正在建设国家基础设施和服务以及研究数据管理…...

基于SSM的“汽车销售分析与管理系统”的设计与实现(源码+数据库+文档+PPT)
基于SSM的“汽车销售分析与管理系统”的设计与实现(源码数据库文档PPT) 开发语言:Java 数据库:MySQL 技术:SSM 工具:IDEA/Ecilpse、Navicat、Maven 系统展示 系统功能结构图 销售经理系统首页图 客户管理图 车辆销…...

vs2015QT项目添加多语言翻译总结
一、简介 当软件有国际化的需求时,就需要多语言翻译功能,最常见的语言就是支持中文和英语,本文介绍在vs2015QT环境下,进行国际化翻译的具体流程。 二、多语言翻译实现流程 1.底层实现原理介绍 QT写的客户端软件,能…...

替换OpenTSDB和HBase,宝武集团使用IoTDB助力钢铁设备智能运维
时序数据库 IoTDB 应用于宝武集团全基地钢铁时序数据管理,激活数据资产,赋能大型设备智能运维。 1. 背景概述 宝武装备智能科技有限公司(以下简称:宝武智维)是中国宝武设备智能运维专业化平台公司,30 余年始…...

MathGPT的原理介绍,在中小学数学教学的应用场景,以及代码样例实现
大家好,我是微学AI,今天给大家介绍一下MathGPT的原理介绍,在中小学数学教学的应用场景,以及代码样例实现。MathGPT的核心架构是一个精心设计的多层次系统,旨在有效处理复杂的数学问题。其主要组成部分包括 数学知识图谱…...

前端框架大比拼:React.js, Vue.js 及 Angular 的优势与适用场景探讨
文章目录 前言一、React.js特点使用方法适用场景 二、Vue.js特点使用方法适用场景 三、Angular特点使用方法适用场景 四、如何选择合适的前端框架五、前端框架对项目性能的影响结语 前言 随着互联网技术的飞速发展,前端开发已经从简单的页面展示演变为复杂的应用构…...

MySQL45讲 第二十讲 幻读是什么,幻读有什么问题?
文章目录 MySQL45讲 第二十讲 幻读是什么,幻读有什么问题?一、幻读的定义二、幻读带来的问题(一)语义问题(二)数据一致性问题 三、InnoDB 解决幻读的方法四、总结 MySQL45讲 第二十讲 幻读是什么࿰…...

MySQL技巧之跨服务器数据查询:进阶篇-从A数据库复制到B数据库的表中
MySQL技巧之跨服务器数据查询:进阶篇-从A数据库复制到B数据库的表中 基础篇已经描述:借用微软的SQL Server ODBC 即可实现MySQL跨服务器间的数据查询。 而且还介绍了如何获得一个在MS SQL Server 可以连接指定实例的MySQL数据库的连接名: MY_ODBC_MYSQ…...

【论文阅读】利用SEM二维图像表征黏土矿物三维结构
导言 在油气储层研究中,黏土矿物对流体流动的影响需要在微观尺度上理解,但传统的二维SEM图像难以完整地表征三维孔隙结构。常规的三维成像技术如FIB-SEM(聚焦离子束扫描电子显微镜)虽然可以获取高精度的3D图像,但成本…...

可靠UDP协议(KCP)使用说明
希望这篇文章,对学习和使用 KCP 协议的读者,有帮助。 1. KCPUDP 流程图 2. 示例代码(待补充) #include <iostream>int main() {// TODO: kcp examplereturn 0; }...

ffmpeg+D3D实现的MFC音视频播放器,支持录像、截图、音视频播放、码流信息显示等功能
一、简介 本播放器是在vs2019下开发,通过ffmpeg实现拉流解码功能,通过D3D实现视频的渲染功能。截图功能采用libjpeg实现,可以截取jpg图片,图片的默认保存路径是在C:\MYRecPath中。录像功能采用封装好的类Mp4Record实现,…...

【Flink】-- flink新版本发布:v2.0-preview1
目录 1、简介 2、非兼容变更 2.1、API 2.2、连接器适配计划 2.3、配置 2.4、其它 3、重要新特性 3.1、存算分离状态管理 3.2、物化表 3.3、批作业的自适应执行 3.4、流式湖仓 4、附加 4.1、非兼容性的 api 程序变更 4.1.2、Removed Classes # 4.1.3、Modified Cl…...

Node.js 版本管理的最终答案 Volta
文章目录 特点安装Unix系统安装Windows系统安装 常用命令volta fetchvolta installvolta uninstallvolta pinvolta listvolta completionsvolta whichvolta setupvolta runvolta help 建议 目前对于前端项目的node 版本,我们一般会在项目 package.json 的 engines 字…...

蓝桥杯每日真题 - 第11天
题目:(合并数列) 题目描述(14届 C&C B组D题) 解题思路: 题意理解:给定两个数组,目标是通过若干次合并操作使两个数组相同。每次合并操作可以将数组中相邻的两个数相加ÿ…...

Vue vs React:两大前端框架的区别解析
在现代前端开发中,Vue.js 和 React.js 是两个最受欢迎的框架和库。我们常常面临选择它们的困惑。虽然这两者在本质上都是为了构建用户界面而设计的,但它们在设计理念、使用方式和生态系统等方面有着显著的区别。今天,我们将通过深入分析这两个…...

【树莓派raspberrypi烧录Ubuntu远程桌面登入树莓派】
提示:本文利用的是Ubuntu主机和树莓派4B开发板,示例仅供参考 文章目录 一、树莓派系统安装下载前准备工作下载安装树莓派的官方烧录软件imagerimager的使用方法 二、主机与树莓SSH连接查看数梅派IP地址建立ssh连接更新树莓派源地址 三、主机端远程桌面配…...

c# 调用c++ 的dll 出现找不到函数入口点
今天在调用一个设备的dll文件时遇到了一点波折,因为多c 不熟悉,调用过程张出现了找不到函数入口点,一般我们使用c# 调用c 文件,还是比较简单。 [DllImport("AtnDll2.dll",CharSet CharSet.Ansi)]public static extern …...

LInux——环境基础开发工具使用(正在更新中...)
1.软件包管理器 Linux下安装软件的方案: 1. 源代码安装 2. rpm包安装 3. 包管理器安装 --- yum/ apt (此图片来自于比特就业课课件) 1.1 操作生态系统 好的操作系统定义: 生态环境好 不同的操作系统根本是生态不同(…...

linux 内核asmlinkage关键字总结
1,看一下asmlinkage的定义 CPP_ASMLINKAGE __attribute__((regparm(0))) GCC中使用__attribute__((regparm(n)))指定最多可以使用n个寄存器(eax, edx, ecx)传递参数,n的范围是0~3,超过n时则将参数压入栈中(…...

⚡️如何在 React 和 Next.js 项目里优雅的使用 Zustand
前言 你是否曾感觉在 React 中管理状态简直是一场噩梦?如果你已经厌倦了不停地处理 props、context 和 hooks,那么现在是时候认识 Zustand 了。Zustand 是一个轻量级的状态管理库,它简化了你处理应用状态的方式。在这篇文章中,我…...

Pinpoint(APM)进阶--Pinot指标采集(System Metric/Inspector)
接上文 Pinpoint使用Pinot进行指标数据存储,Pinot流摄入需要Kafka 本文详解Kafka和Pinot的安装部署,以及Pinpoint的指标采集 Pinot 简介 Apache Pinot是一个实时分布式OLAP数据存储,专为低延迟、高吞吐量分析而构建,非常适合面…...

Mysql:使用binlog的一些常用技巧
1、如何查看binlog的存放路径 show variables like log% 执行结果: 2、如何清除binlog (1)按时间清除 purge binary logs before ‘2023-06-5 10:12:00’ (2)按文件文件名清除 purge binary logs to ‘mybinlog.0000…...

Electron 项目启动外部可执行文件的几种方式
Electron 项目启动外部可执行文件的几种方式 序言 在开发 Electron 应用程序时,有时需要启动外部的可执行文件(如 .exe 文件)。这可能是为了调用系统工具、运行第三方软件或者集成现有的应用程序。 Electron 提供了多种方式来启动外部可执行…...

前端开发中常用的包管理器(npm、yarn、pnpm、bower、parcel)
文章目录 1. npm (Node Package Manager)2. Yarn (Yarn Package Manager)3. pnpm4. Bower5. Parcel总结 前端开发中常用的包管理器主要有以下几个: 1. npm (Node Package Manager) 简介: npm 是 Node.js 的默认包管理器,也是最广泛使用的包…...

Linux入门:环境变量与进程地址空间
一. 环境变量 1. 概念 1️⃣基本概念: 环境变量(environment variables)一般是指在操作系统中用来指定操作系统运行环境的一些参数 如:我们在编写C/C代码的时候,在链接的时候,从来不知道我们的所链接的动态静态库在哪里&#x…...