当前位置: 首页 > news >正文

Vue 入门指南:从零开始学习 Vue 的基础知识

🥝VUE官方文档
注意

  • 📒Vue 2 将于 2023 年 12 月 31 日停止维护。详见 Vue 2 延长 LTS。
  • 📒Vue 2 中文文档已迁移至 v2.cn.vuejs.org。
  • 📒想从 Vue 2 升级?请参考迁移指南。

文章目录

    • 🍁前言
    • 🍁ES6学习必要
    • 🍁安装 Vue
    • 🍁Vue.JS概念
    • 🍁Vue.JS特点
    • 🍁插值表达式
      • 🍂文本
      • 🍂HTML
      • 🍂Attribute
      • 🍂使用 JavaScript 表达式
    • 🍁代码示例

🍁前言

Vue 是一个前端框架,它使得构建交互式应用程序变得更加容易,让前端开发者能够更好地处理复杂的数据,并使得用户界面更加美观、可应对各种设备。使用 Vue 可以在较短的时间内构建出具有雄心壮志的单页应用程序,它也很容易与其他工具协同工作。

学习VUE之前,要学习ES6的语法,ES6 教程

🍁ES6学习必要

在学习 Vue.js 之前,学习 ES6(ECMAScript 2015)是很有必要的,原因如下:

  • 📒官方推荐:Vue.js 官方文档和社区中广泛使用了 ES6 的语法和特性。通过学习 ES6,您将能更好地理解和应用 Vue.js 中的示例代码和文档。

  • 📒新特性支持:ES6 引入了许多强大的新特性,如箭头函数、解构赋值、模块化、Promise、Class、模板字符串等。这些特性可以提高开发效率,使代码更简洁、可读性更好,并且可以充分利用 JavaScript 的功能。

  • 📒提升开发效率:ES6 提供了许多语言层面的功能和优化,使得开发人员可以更快、更高效地编写和组织代码。比如箭头函数可以简化函数的定义和使用,解构赋值可以方便地从对象或数组中提取值。

  • 📒模块化支持:ES6 引入了模块化的概念,使得代码可以按模块组织、导入和导出。这种模块化的开发方式可以提高代码的可维护性和可测试性,也符合现代化的开发规范。

  • 📒兼容性和未来发展:ES6 是 JavaScript 的下一代标准,浏览器厂商和开发者社区都在积极支持和推广。掌握 ES6 让您能够编写更先进的 JavaScript 代码,并且能够顺利迁移到未来的 JavaScript 版本,同时还能兼顾旧版本的浏览器兼容性。

总的来说,学习 ES6 可以让您更好地理解和应用 Vue.js,同时也提升了您作为前端开发者的技能水平和竞争力。它是现代 JavaScript 开发的重要基础,对于学习和掌握任何现代的前端框架和工具都是非常有帮助的。

🍁安装 Vue

首先,需要从 Vue 的官方网站下载相关的脚本文件,或者通过类似 npm 或 Yarn 的工具安装。下载的文件包含了 Vue 的核心代码和几个常用的插件,可以通过 script 标签或操作性的方法引入到你的项目中。
下载脚本,在官网中下载
在这里插入图片描述

//引包
<script src="./vue.js"></script>
//或者 不需要下载直接引用Vue 库
<script src="https://cdn.jsdelivr.net/npm/vue"></script>

🍁Vue.JS概念

Vue.js(通常称为Vue)是一个用于构建用户界面的渐进式JavaScript框架。它专注于视图层,采用了响应式数据绑定和组件化的开发方式,可以帮助开发者构建交互性的单页应用程序(Single-Page Applications,SPA)和可复用的组件。

Vue.js的核心思想是通过将视图(HTML模板)和数据(JavaScript对象)进行双向绑定,实现数据的自动更新和视图的响应性。这意味着当数据发生变化时,页面上对应的视图部分会自动更新,而不需要手动操作DOM。这使得开发者能够专注于业务逻辑和数据处理,而不必过多关注繁琐的DOM操作。

Vue.js也支持组件化开发,通过将页面拆分为多个独立可复用的组件,实现更好的代码组织和可维护性。每个组件都有自己的模板、逻辑和样式,可以独立进行开发和测试,并可以在不同的应用程序中共享和复用。

Vue.js还提供了许多其他功能和特性,如路由管理(Vue Router)、状态管理(Vuex)、动画效果(Vue Transitions)等,以满足不同项目的需求。

总的来说,Vue.js 是一个灵活、易学且功能强大的前端框架,帮助开发者构建高效、响应式的用户界面。

🍁Vue.JS特点

Vue.js 作为一个主流的前端框架,与其他框架相比具有以下特点和优势:

  • 📒简单易学
    Vue.js 的语法和概念相对简单,易于学习和上手。它采用了响应式的数据绑定和组件化的开发方式,使得开发者可以快速构建交互式的单页应用程序。

  • 📒灵活性
    Vue.js 可以与其他库或现有项目集成,也可以逐步应用到现有项目中。它不强制性地依赖特定的工具链,因此开发者可以根据自身需求选择合适的构建工具和库。

  • 📒渐进式框架
    Vue.js 是一个渐进式框架,可以根据项目规模和复杂度选择使用不同规模的功能。无论是小型的交互式组件还是大型的单页应用程序,Vue.js 都能提供适当的解决方案。

  • 📒性能优化
    Vue.js 在性能方面做了很多优化,包括虚拟 DOM、异步更新、组件级别的缓存策略等。这些优化措施使得应用程序可以高效地运行,响应速度更快。

  • 📒生态系统丰富
    Vue.js 生态系统非常丰富,有大量的第三方插件和库可供选择,以满足各种需求。同时,Vue.js 也有一个活跃的社区,提供了丰富的教程、文档和支持。

与其他框架相比,例如 React 和 Angular,Vue.js 的学习曲线相对较低,语法更加简洁直观。React 更加注重组件化和声明式编程,而 Angular 更注重模块化和强大的工具集。不同的框架适用于不同的项目和团队需求,开发者可以根据自身情况和偏好选择合适的框架。

🍁插值表达式

🍂文本

Vue 的插值表达式用双大括号{{}}表示,可以将数据动态地绑定到模板中。在双大括号中,你可以使用 Vue 实例中的数据属性,并将其显示在视图中。

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><title>vue的插值表达式</title></head><body><div id="app"><h2>{{ text }}</h2></div><script src="./vue.js"></script><script>const v = new Vue({el:'#app',data:{text:'vue study'}});</script></body>
</html>

在上面的例子中,我们创建了一个 Vue 实例,并将其绑定到 id 为 app 的元素上。data 选项用来定义实例的数据属性,其中 text是一个字符串类型的数据属性。

在 HTML 文件中,我们通过使用双大括号 {{}} 的插值表达式来显示 text属性的值。当 Vue 实例中的 text属性发生变化时,对应的文本内容也会自动更新。

🍂HTML

在 Vue 的插值表达式中,默认情况下会对输出的文本内容进行转义,以防止XSS(跨站脚本攻击)的安全问题。这意味着如果你在插值表达式中包含 HTML 标签,它们将会以文本形式被展示而不会被解析为实际的 HTML。

如果你确实需要在插值表达式中显示原始 HTML,可以使用 v-html 指令。与 v-text 指令不同,v-html 指令会解析绑定的数据中包含的 HTML 标签,并将其作为实际的 HTML 内容进行渲染。

示例:

<div v-html="htmlContent"></div>

在上面的示例中,htmlContent 是 Vue 实例中的一个数据属性,它的值是一个包含 HTML 标签的字符串。v-html 指令会将 htmlContent 的值解析为 HTML,并将其渲染到 div 元素中。

需要注意的是,对于使用 v-html 指令的内容,要确保它们来自于可信的来源,以避免潜在的安全风险。使用不受信任的内容时,一定要进行恰当的过滤和验证。

总结:插值表达式默认会将输出的文本进行转义,但如果你需要在 Vue 模板中显示原始 HTML 内容,可以使用 v-html 指令来实现。请谨慎使用,并确保内容来源可信。

🍂Attribute

在 Vue 的插值表达式中,你可以使用 v-bind 指令(或简写形式的冒号 :)来动态绑定 HTML 属性。

以下是一些例子:

  • 使用变量绑定属性值:
<a v-bind:href="url">{{ linkText }}</a>

在上面的例子中,属性 href 的值将被动态地绑定为 url 变量的值。linkText 表达式将作为链接的文本内容。

  • 直接绑定表达式作为属性值:
<img v-bind:src="imageSrc">

在上面的例子中,src 属性的值将被绑定为 imageSrc 表达式的值。这通常用于动态加载图像。

  • 绑定动态的 CSS 类:
<div v-bind:class="active ? 'active' : 'inactive'"></div>

在上面的例子中,class 属性的值将根据 active 变量的值动态绑定不同的 CSS 类。

请注意,对于布尔类型的属性,通过简单地省略属性值可以将其绑定为真值:

<input type="checkbox" v-bind:checked="isActive">

在上面的例子中,如果 isActive 为 true,则 checked 属性会被添加到 元素上。

总结:通过使用 v-bind 指令,在 Vue 的插值表达式中可以动态地绑定 HTML 属性。你可以使用变量、表达式或布尔值来绑定属性的值。

🍂使用 JavaScript 表达式

在 Vue 的插值表达式中,你可以使用 JavaScript 表达式执行简单的计算、逻辑判断和其他操作。以下是一些例子:

  • 执行简单的计算:
<p>{{ num1 + num2 }}</p>

上面的例子中,Vue 将会计算 num1 和 num2 的和,并将结果作为文本显示在

标签中。

  • 进行逻辑判断:
<p v-if="showText">{{ message }}</p>

在上面的例子中,当 showText 的值为真时,Vue 将会渲染显示 message 变量的值。否则,该段落标签将不会显示。

  • 调用函数或方法:
<p>{{ getFullName(firstName, lastName) }}</p>

在上面的例子中,getFullName 是一个在 Vue 实例中定义的方法,它接收 firstName 和 lastName 作为参数,并返回一个完整的姓名。

请注意,插值表达式中的 JavaScript 表达式应该是简单和非副作用的。复杂的逻辑和大量的计算应该尽量放在 Vue 实例的计算属性或方法中,然后在插值表达式中使用这些属性或方法。

🍁代码示例

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><title>vue的插值表达式</title></head><body><div id="app"><h2>{{ text }}</h2><h2>{{ getContent() }}</h2><h2>{{ 1<2 ? 'true':'false' }}</h2></div><script src="./vue.js"></script><script>const v = new Vue({el:'#app',data:{text:'vue study',text2:'Hello!'},methods:{getContent(){return this.text2 + ' ' + this.text}}});</script></body>
</html>

运行结果:
在这里插入图片描述


🏫博客主页:魔王-T

🥝大鹏一日同风起 扶摇直上九万里

❤️感谢大家点赞👍收藏⭐评论✍️


相关文章:

Vue 入门指南:从零开始学习 Vue 的基础知识

&#x1f95d;VUE官方文档 注意&#xff1a; &#x1f4d2;Vue 2 将于 2023 年 12 月 31 日停止维护。详见 Vue 2 延长 LTS。&#x1f4d2;Vue 2 中文文档已迁移至 v2.cn.vuejs.org。&#x1f4d2;想从 Vue 2 升级&#xff1f;请参考迁移指南。 文章目录 &#x1f341;前言&am…...

11.docker的网络-docker0的理解及bridge网桥模式的介绍与实例

1.docker0的基本理解 安装完docker服务后&#xff0c;我们首先查看一下宿主机的网络配置 ifconfig我们可以看到&#xff0c;docker服务会默认在宿主机上创建一个虚拟网桥docker0&#xff0c;该网桥网络的名字称为docker0。它在内核层连通了其他物理或者虚拟网卡&#xff0c;这…...

新材料制造ERP用哪个好?企业应当如何挑选适用的

有些新材料存在特殊性&#xff0c;并且在制造过程中对车间、设备、工艺、人员等方面提出更高的要求。还有些新材料加工流程复杂&#xff0c;涉及多种材料的请购、出入库、使用和管理等环节&#xff0c;解决各个业务环节无缝衔接问题是很多制造企业面临的管理难题。 新材料制造…...

vr小鼠虚拟解剖实验教学平台减少了受感染风险

家畜解剖实验教学是培养畜牧兽医专业学生实际操作能力的专业教学活动中的核心手段。采取新型教学方式与手段&#xff0c;合理设置实验教学内容&#xff0c;有助于激发学生的操作积极性&#xff0c;促进实践教学的改革。 家畜解剖VR仿真教学是一种借助VR虚拟现实制作和web3d开发…...

【算法萌新闯力扣】:环形链表及环形链表II

力扣题目&#xff1a;环形链表及环形链表II 开篇 今天是备战蓝桥杯的第26天和算法村开营第4天。挑选了链表的黄金关卡与大家分享。 题目一&#xff1a;环形链表 题目链接: 141.环形链表 题目描述 方法一、哈希表 判断是否有环&#xff0c;可以利用哈希表&#xff0c;遍历…...

10.docker的网络network-概述

1.docker的网络模式 docker共有四种网路模式&#xff0c;分别是bridge、host、none和container. 1.1 bridge bridge,也称为虚拟网桥。在bridge模式下&#xff0c;为每个容器分配、配置IP等&#xff0c;并将容器连接到一个docker0。使用–network bridge命令指定&#xff0c;…...

CodeTON Round #7 (Div. 1 + Div. 2)

A.jagged Swaps 题意&#xff1a; 给出一个包含 n n n个数字的序列&#xff0c;每次可以选择一个同时大于左右两边相邻的数字&#xff0c;将这个数字与它右边的数字交换&#xff0c;问能否在经过若干次操作后使序列变为升序。 分析&#xff1a; 由于交换只能向后进行&#…...

剑指 Offer(第2版)面试题 10:斐波那契数列

剑指 Offer&#xff08;第2版&#xff09;面试题 10&#xff1a;斐波那契数列 剑指 Offer&#xff08;第2版&#xff09;面试题 10&#xff1a;斐波那契数列解法1&#xff1a;递归解法2&#xff1a;动态规划解法3&#xff1a;动态规划 - 空间优化 剑指 Offer&#xff08;第2版&…...

Debian 12 / Ubuntu 22.04 安装 Docker 以及 Docker Compose 教程

Debian 12 / Ubuntu 22.04 安装 Docker 以及 Docker Compose 教程 本文将指导如何在 Debian 12 和 Ubuntu 22.04 下安装 Docker 以及 Docker Compose。 PS&#xff1a;本文同时适用于 Debian 11 以及 Ubuntu 20.04 什么是 Docker&#xff1f; Docker 是一种容器化技术&#x…...

Spark_spark参数配置优先级

总结 &#xff1a; 优先级低-》优先级高 spark-submit 提交的优先级 < scala/java代码中的配置参数 < spark SQL hint spark submit 中提交参数 #!/usr/bin/env bashsource /home/work/batch_job/product/common/common.sh spark_version"/home/work/opt/spark&q…...

ElasticSearch之Search settings

相关参数 indices.query.bool.max_clause_count 本参数当前已失效。 search.max_buckets 本参数用于控制在单个响应中返回的聚合的桶的数量。 默认值为65536。 本参数允许在elasticsearch.yml中配置&#xff0c;配置样例如下&#xff1a; search.max_buckets: 30或者使用Ela…...

二十二、数组(4)

本章概要 随机生成泛型和基本数组 随机生成 我们可以按照 Count.java 的结构创建一个生成随机值的工具&#xff1a; Rand.java import java.util.*; import java.util.function.*;import static com.example.test.ConvertTo.primitive;public interface Rand {int MOD 10_0…...

『 MySQL数据库 』CRUD之UD,表的数据更新(修改)及删除

文章目录 &#x1f969; Update (更新/修改) &#x1f996;&#x1f95a; 修改单行数据的某个字段内的数据 &#x1f995;&#x1f95a; 配合LIMIT分页与ORDER BY 对符合条件的多条数据进行修改 &#x1f995;&#x1f95a; 对整表的某个数据字段进行修改 &#x1f995; &#…...

贪心算法及相关例题

目录 什么是贪心算法&#xff1f; leetcode455题.分发饼干 leetcode376题.摆动序列 leetcode55题.跳跃游戏I leetcode45题.跳跃游戏II leetcode621题.任务调度器 leetcode435题.无重叠空间 leetcode135题.分发糖果 什么是贪心算法&#xff1f; 贪心算法更多的是一种思…...

给企业做公众号运营你都有哪些宝贵经验?

运营企业公众号需要长期的坚持和不断的创新&#xff0c;如何运营好一个企业公众号&#xff0c;使其成为企业与受众互动、传递价值、提升品牌形象的平台&#xff0c;是许多企业所面临的挑战。但只要不断学习&#xff0c;总结经验&#xff0c;就一定能够找到适合自己企业的公众号…...

2023亚太地区数学建模B题思路分析+模型+代码+论文

目录 2023亚太地区数学建模A题思路&#xff1a;开赛后第一时间更新&#xff0c;获取见文末名片 2023亚太地区数学建模B题思路&#xff1a;开赛后第一时间更新&#xff0c;获取见文末名片 2023亚太地区数学建模C题思路&#xff1a;开赛后第一时间更新&#xff0c;获取见文末名…...

Electron+Ts+Vue+Vite桌面应用系列:sqlite增删改查操作篇

文章目录 1️⃣ sqlite应用1.1 sqlite数据结构1.2 初始化数据库1.3 初始化实体类1.4 操作数据类1.5 页面调用 优质资源分享 作者&#xff1a;xcLeigh 文章地址&#xff1a;https://blog.csdn.net/weixin_43151418 ElectronTsVueVite桌面应用系列 &#xff1a;这个系列包括了从桌…...

c语言编程题经典100例——(36~40例)

1&#xff0c;实现快速排序算法。 下面是用C语言实现快速排序算法的示例代码&#xff1a; #include <stdio.h> void swap(int* a, int* b) { int t *a; *a *b; *b t; } int partition(int arr[], int low, int high) { int pivot arr[high]; int i (low …...

SQL Server实现参数化增删改查Class类

目录 SqlServerDatabase.Class Main调用 SqlServerDatabase.Class using System; using System.Data; using System.Data.SqlClient; class SqlServerDatabase { private readonly string connectionString; public SqlServerDatabase(string connectionString) { …...

【Linux】 sudo命令使用

sudo sudo是linux系统管理指令&#xff0c;是允许系统管理员让普通用户执行一些或者全部的root命令的一个工具&#xff0c;如halt&#xff0c;reboot&#xff0c;su等等。这样不仅减少了root用户的登录 和管理时间&#xff0c;同样也提高了安全性。sudo不是对shell的一个代替…...

Vim 调用外部命令学习笔记

Vim 外部命令集成完全指南 文章目录 Vim 外部命令集成完全指南核心概念理解命令语法解析语法对比 常用外部命令详解文本排序与去重文本筛选与搜索高级 grep 搜索技巧文本替换与编辑字符处理高级文本处理编程语言处理其他实用命令 范围操作示例指定行范围处理复合命令示例 实用技…...

iOS 26 携众系统重磅更新,但“苹果智能”仍与国行无缘

美国西海岸的夏天&#xff0c;再次被苹果点燃。一年一度的全球开发者大会 WWDC25 如期而至&#xff0c;这不仅是开发者的盛宴&#xff0c;更是全球数亿苹果用户翘首以盼的科技春晚。今年&#xff0c;苹果依旧为我们带来了全家桶式的系统更新&#xff0c;包括 iOS 26、iPadOS 26…...

docker详细操作--未完待续

docker介绍 docker官网: Docker&#xff1a;加速容器应用程序开发 harbor官网&#xff1a;Harbor - Harbor 中文 使用docker加速器: Docker镜像极速下载服务 - 毫秒镜像 是什么 Docker 是一种开源的容器化平台&#xff0c;用于将应用程序及其依赖项&#xff08;如库、运行时环…...

React hook之useRef

React useRef 详解 useRef 是 React 提供的一个 Hook&#xff0c;用于在函数组件中创建可变的引用对象。它在 React 开发中有多种重要用途&#xff0c;下面我将全面详细地介绍它的特性和用法。 基本概念 1. 创建 ref const refContainer useRef(initialValue);initialValu…...

Mac软件卸载指南,简单易懂!

刚和Adobe分手&#xff0c;它却总在Library里给你写"回忆录"&#xff1f;卸载的Final Cut Pro像电子幽灵般阴魂不散&#xff1f;总是会有残留文件&#xff0c;别慌&#xff01;这份Mac软件卸载指南&#xff0c;将用最硬核的方式教你"数字分手术"&#xff0…...

Cloudflare 从 Nginx 到 Pingora:性能、效率与安全的全面升级

在互联网的快速发展中&#xff0c;高性能、高效率和高安全性的网络服务成为了各大互联网基础设施提供商的核心追求。Cloudflare 作为全球领先的互联网安全和基础设施公司&#xff0c;近期做出了一个重大技术决策&#xff1a;弃用长期使用的 Nginx&#xff0c;转而采用其内部开发…...

ardupilot 开发环境eclipse 中import 缺少C++

目录 文章目录 目录摘要1.修复过程摘要 本节主要解决ardupilot 开发环境eclipse 中import 缺少C++,无法导入ardupilot代码,会引起查看不方便的问题。如下图所示 1.修复过程 0.安装ubuntu 软件中自带的eclipse 1.打开eclipse—Help—install new software 2.在 Work with中…...

Unit 1 深度强化学习简介

Deep RL Course ——Unit 1 Introduction 从理论和实践层面深入学习深度强化学习。学会使用知名的深度强化学习库&#xff0c;例如 Stable Baselines3、RL Baselines3 Zoo、Sample Factory 和 CleanRL。在独特的环境中训练智能体&#xff0c;比如 SnowballFight、Huggy the Do…...

自然语言处理——循环神经网络

自然语言处理——循环神经网络 循环神经网络应用到基于机器学习的自然语言处理任务序列到类别同步的序列到序列模式异步的序列到序列模式 参数学习和长程依赖问题基于门控的循环神经网络门控循环单元&#xff08;GRU&#xff09;长短期记忆神经网络&#xff08;LSTM&#xff09…...

Typeerror: cannot read properties of undefined (reading ‘XXX‘)

最近需要在离线机器上运行软件&#xff0c;所以得把软件用docker打包起来&#xff0c;大部分功能都没问题&#xff0c;出了一个奇怪的事情。同样的代码&#xff0c;在本机上用vscode可以运行起来&#xff0c;但是打包之后在docker里出现了问题。使用的是dialog组件&#xff0c;…...