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

Vue 3新手入门指南,从安装到基础语法

作为一名前端新手,你可能听说过Vue.js的简单与强大,但面对框架的安装和一堆新概念,可能会觉得无从下手。别担心!这篇文章将带你从零开始,完成Vue3的安装,并通过简单示例掌握核心语法。无论你是完全零基础,还是想快速入门Vue 3,这篇指南都为你量身打造。让我们一起开启前端学习的旅程吧!

为什么选择Vue 3?

  • 简单易学:语法直观,文档友好,适合新手快速上手。
  • 响应式强大:Vue 3的Composition API让状态管理更灵活。
  • 生态繁荣:2025年,Vue 3是前端主流框架之一,社区活跃,资源丰富。
  • 轻量高效:搭配Vite构建工具,开发体验丝滑。

第一步:安装Vue 3

Vue 3项目的搭建非常简单,我们推荐使用 Vite(2025年主流构建工具),因为它启动快、配置少,适合新手。以下是详细步骤。

1. 安装Node.js

  • 下载Node.js:访问 Node.js官网,下载推荐版本(建议v18或以上)。
  • 验证安装:打开终端(Windows用CMD或PowerShell,Mac用Terminal),运行:
    node -v
    npm -v
    
    • 看到版本号(如v18.20.0)说明安装成功。

2. 创建Vue 3项目

  1. 运行创建命令
    npm create vue@latest
    
  2. 按提示配置
    • 项目名称:输入my-vue-app(或自定义)。
    • 是否使用TypeScript:选No(新手先用JavaScript)。
    • 其他选项(如JSX、Vue Router、Pinia):全选No,保持简单。
  3. 进入项目并启动
    cd my-vue-app
    npm install
    npm run dev
    
  4. 访问项目
    • 打开浏览器,输入http://localhost:5173(端口可能不同,参考终端提示)。
    • 看到Vue欢迎页面,说明项目创建成功!

3. 开发环境推荐

  • 编辑器:推荐 VS Code,免费且功能强大。
  • 插件:安装Volar(Vue官方插件),支持Vue 3语法高亮和提示:
    • 在VS Code扩展市场搜索Volar,点击安装。

小贴士:如果你更喜欢传统方式,也可以用Vue CLI:

npm install -g @vue/cli
vue create my-vue-app

但Vite更快、更现代,推荐优先尝试。

第二步:掌握Vue 3基础语法

Vue 3的核心是响应式组件化。我们将通过一个简单的计数器示例,学习Vue 3的常用语法,包括响应式、指令、事件处理和组件。

1. 项目结构初探

创建成功后,项目目录如下:

my-vue-app/
├── src/
│   ├── App.vue        # 主组件
│   ├── main.js        # 入口文件
│   ├── assets/        # 静态资源
├── public/            # 公共资源
├── package.json       # 项目配置
  • App.vue:你的应用主页面。
  • main.js:负责启动Vue应用。

2. 创建一个计数器

我们将修改App.vue,实现一个计数器,包含加减按钮和显示数字。

替换src/App.vue内容为:

<script setup>
import { ref } from 'vue';// 定义响应式变量
const count = ref(0);// 增加计数
const increment = () => {count.value++;
};// 减少计数
const decrement = () => {count.value--;
};
</script><template><div class="container"><h1>Vue 3计数器</h1><p>当前计数:{{ count }}</p><button @click="increment">+1</button><button @click="decrement">-1</button></div>
</template><style scoped>
.container {max-width: 600px;margin: 0 auto;padding: 20px;text-align: center;
}
h1 {color: #2c3e50;
}
p {font-size: 24px;margin: 20px 0;
}
button {padding: 10px 20px;margin: 0 10px;font-size: 16px;background-color: #42b983;color: white;border: none;border-radius: 4px;cursor: pointer;
}
button:hover {background-color: #3aa876;
}
</style>

运行效果

  • 保存代码,浏览器自动刷新。
  • 你会看到一个标题“Vue 3计数器”、当前计数(初始为0)和两个按钮。
  • 点击“+1”增加计数,点击“-1”减少计数。

3. 语法讲解

让我们拆解代码,了解Vue 3的核心概念。

(1)<script setup>
  • 这是Vue 3推荐的写法,简洁高效。
  • 直接在<script setup>中定义变量和函数,无需export default
  • 示例中的countincrementdecrement都自动可用。
(2)响应式:ref
  • ref创建一个响应式变量,修改它的.value会自动触发页面更新。
  • 代码中的count = ref(0)定义了一个初始值为0的响应式计数。
  • <template>中,{{ count }}直接显示count.value的值。
(3)事件处理:@click
  • @click绑定点击事件,调用定义的函数。
  • 例如:@click="increment"表示点击按钮时执行increment函数。
(4)模板语法:{{ }}
  • 双大括号用于显示变量或表达式。
  • {{ count }}会渲染count.value的值。
(5)样式:<style scoped>
  • scoped确保样式只作用于当前组件,不会污染其他组件。
  • 示例中使用了简单的CSS,美化按钮和布局。

4. 再进一步:创建组件

Vue 3的组件化让代码更模块化。我们将把计数器拆分成一个独立组件。

  1. 创建组件

    • src/components目录下新建Counter.vue
      <script setup>
      import { ref } from 'vue';const count = ref(0);
      const increment = () => count.value++;
      const decrement = () => count.value--;
      </script><template><div class="counter"><p>计数:{{ count }}</p><button @click="increment">+1</button><button @click="decrement">-1</button></div>
      </template><style scoped>
      .counter {border: 1px solid #ddd;padding: 20px;border-radius: 8px;margin: 20px 0;
      }
      p {font-size: 20px;margin: 10px 0;
      }
      button {padding: 8px 16px;margin: 0 5px;background-color: #42b983;color: white;border: none;border-radius: 4px;cursor: pointer;
      }
      button:hover {background-color: #3aa876;
      }
      </style>
      
  2. 在App.vue中使用

    • 修改src/App.vue
      <script setup>
      import Counter from './components/Counter.vue';
      </script><template><div class="container"><h1>Vue 3计数器</h1><Counter /></div>
      </template><style scoped>
      .container {max-width: 600px;margin: 0 auto;padding: 20px;text-align: center;
      }
      h1 {color: #2c3e50;
      }
      </style>
      

运行效果:页面效果与之前相同,但计数器逻辑被封装到Counter.vue,代码更模块化。

5. 更多常用语法

以下是一些Vue 3的常见语法,适合新手快速掌握。

(1)条件渲染:v-if
  • 显示或隐藏元素:
    <template><p v-if="count > 0">计数大于0!</p><p v-else>计数为0或负数</p>
    </template>
    
(2)列表渲染:v-for
  • 循环渲染数组:
    <script setup>
    import { ref } from 'vue';
    const items = ref(['苹果', '香蕉', '橙子']);
    </script><template><ul><li v-for="(item, index) in items" :key="index">{{ item }}</li></ul>
    </template>
    
(3)双向绑定:v-model
  • 常用于表单输入:
    <script setup>
    import { ref } from 'vue';
    const inputText = ref('');
    </script><template><input v-model="inputText" placeholder="输入内容" /><p>你输入了:{{ inputText }}</p>
    </template>
    

第三步:新手常见问题解答

  1. “为什么页面不更新?”
    • 确保修改的是ref.value,如count.value++
    • 检查是否有语法错误,打开浏览器开发者工具(F12)查看控制台。
  2. “组件怎么引入?”
    • 确保import路径正确,且在<script setup>中引入后直接在<template>中使用。
  3. “学了这些能做什么?”
    • 掌握这些基础,你可以开始做简单的页面(如表单、列表),接下来可以学习Vue Router做多页面应用,或Pinia做状态管理。

学习感悟:从迷茫到热爱

我刚学前端时,面对框架文档和英文报错,常常觉得自己“学不会”。但当我第一次用Vue写出动态更新的计数器,屏幕上的数字跳动让我兴奋了一整晚!前端开发就像解谜,每解决一个问题,你就更有信心。

给新手的建议

  • 从模仿开始:先跟着教程敲代码,理解后再改动。
  • 善用资源:Vue 3官方文档(vuejs.org)和B站教程是宝藏。
  • 坚持小目标:每天学一个语法,比如今天搞懂v-for,明天试试v-model

最后寄语:前端学习如登山,起点或许艰难,但每一步都在靠近更美的风景。愿你敲下每一行代码,都充满期待与快乐!

相关推荐

想深入学习Vue 3和前端开发?以下是几篇值得一读的文章:
Vue 3 中的新特性:Suspense和Teleport
从初级到高级前端:如何写出高质量代码,迈向职业新高度
从零打造一个Vue 3组件库:开发、打包与发布到NPM

相关文章:

Vue 3新手入门指南,从安装到基础语法

作为一名前端新手&#xff0c;你可能听说过Vue.js的简单与强大&#xff0c;但面对框架的安装和一堆新概念&#xff0c;可能会觉得无从下手。别担心&#xff01;这篇文章将带你从零开始&#xff0c;完成Vue3的安装&#xff0c;并通过简单示例掌握核心语法。无论你是完全零基础&a…...

反爬加密字体替换机制解析

加密字体替换是网站反爬虫的常用技术之一&#xff0c;其核心是通过自定义字体文件对关键数据&#xff08;如数字、文字&#xff09;进行动态渲染&#xff0c;使源码中显示的字符与用户实际看到的内容不一致。下面从技术原理、实现类型和破解方法三个方向展开分析&#xff0c;并…...

字节跳动开源数字人模型latentsync1.5,性能、质量进一步优化~

项目背景 LatentSync1.5 是由 ByteDance 开发的一款先进的 AI 模型&#xff0c;专门针对视频唇同步&#xff08;lip synchronization&#xff09;任务设计&#xff0c;旨在实现音频与视频唇部动作的高质量、自然匹配。随着 AI 技术的快速发展&#xff0c;视频生成和编辑的需求…...

Day12(回溯法)——LeetCode51.N皇后39.组合总和

1 前言 今天刷了三道回溯法和一道每日推荐&#xff0c;三道回溯法也迷迷糊糊的&#xff0c;每日推荐把自己绕进去了&#xff0c;虽然是一道之前做过的题的变种。刷的脑子疼。。。今天挑两道回溯题写一下吧&#xff0c;其中有一道是之前做过的N皇后&#xff0c;今天在详细写一写…...

简历中的专业技能

Java 精通Java 核心&#xff0c;多年一线研发经验&#xff0c;具备良好的编码能力、并熟练应用设计模式精通多进程、Java 高并发编程&#xff0c;阅读过相关 JDK 源码以及Lock锁的底层源码&#xff0c;熟悉 AQS 和 CAS 的核心思想&#xff0c;能够运用其机制优化并发编程精通 …...

力扣HOT100——102.二叉树层序遍历

给你二叉树的根节点 root &#xff0c;返回其节点值的 层序遍历 。 &#xff08;即逐层地&#xff0c;从左到右访问所有节点&#xff09;。 示例 1&#xff1a; 输入&#xff1a;root [3,9,20,null,null,15,7] 输出&#xff1a;[[3],[9,20],[15,7]] /*** Definition for a bi…...

【Token系列】05 | 位置编码不是位置信息:Transformer如何建立语言顺序感?

文章目录 05 | 位置编码不是位置信息&#xff1a;Transformer如何建立语言顺序感&#xff1f;一、为什么Transformer需要“位置感知”&#xff1f;二、什么是位置编码&#xff08;Position Encoding, PE&#xff09;&#xff1f;三、相对 vs 绝对位置编码四、可学习位置编码机制…...

springboot启动的端口如何终止

若要终止 Spring Boot 应用所使用的端口&#xff0c;可依据应用的运行方式&#xff0c;采用不同的解决办法。以下为你详细介绍&#xff1a; 1. 直接停止正在运行的 Spring Boot 应用程序 开发环境&#xff08;IDE 中运行&#xff09; IntelliJ IDEA&#xff1a;在 IDE 的运行…...

chrony服务器(1)

简介 NTP NTP&#xff08;Network Time Protocol&#xff0c;网络时间协议&#xff09;是一种用于同步计算机系统时间的协议是TCP/IP协议族中的一个应用层协议&#xff0c;主要用于在分布式时间服务器和客户端之间进行时钟同步&#xff0c;提供高精准度的时间校正通过分层的时…...

搭建基于火灾风险预测与防范的消防安全科普小程序

基于微信小程序的消防安全科普互动平台的设计与实现&#xff0c;是关于微信小程序的&#xff0c;知识课程学习&#xff0c;包括学习后答题。 技术栈主要采用微信小程序云开发&#xff0c;有下面的模块&#xff1a; 1.课程学习模块 2.资讯模块 3.答题模块 4.我的模块 还需…...

RAG技术与应用---0426

大语言模型>3.10 课程中会用到python 工具箱&#xff1a; faiss,modelscope,langchain,langchain_community&#xff0c;PyPDF2 1&#xff09;大模型应用开发的三种模式 提示词没多少工作量&#xff0c;微调又花费时间费用&#xff0c;RAG是很多公司招聘用来对LLM进行应用…...

element-ui多个form同时验证,以及动态循环表单注意事项

多个form同时验证&#xff1a; validateForm(refs) {if (!refs) {return false}return new Promise((resolve, reject) > {refs.validate().then((valid) > {resolve(valid)}).catch((val) > {resolve(false)})}) }, async handleConfirm() {Promise.all([this.valid…...

k8s学习记录(四):节点亲和性

一、前言 在上一篇文章里&#xff0c;我们了解了 Pod 中的nodeName和nodeSelector这两个属性&#xff0c;通过它们能够指定 Pod 调度到哪个 Node 上。今天&#xff0c;我们将进一步深入探索 Pod 相关知识。这部分内容不仅信息量较大&#xff0c;理解起来也有一定难度&#xff0…...

文本预处理(NLTK)

1. 自然语言处理基础概念 1.1 什么是自然语言处理 自然语言处理( Natural Language Processing, NLP)是计算机科学领域与人工智能领域中的一个重要方向。它研究能实现人与计算机之间用自然语言进行有效通信的各种理论和方法。自然语言处理是一门融语言学、计算机科学、数学于…...

一些常见的资源池管理、分布式管理和负载均衡的监控工具

资源池管理监控工具 Prometheus 是一款开源的系统监控和警报工具。它可以通过收集各种指标数据,如CPU使用率、内存使用量、磁盘I/O等,来监控资源池中的服务器、容器等资源。Prometheus具有强大的查询语言和可视化功能,能够帮助管理员快速了解资源的使用情况,并及时发现潜在…...

Neo4j 可观测性最佳实践

Neo4j 介绍 Neo4j 是一款领先的图数据库管理系统&#xff0c;采用图数据模型来表示和存储数据。它以节点、关系和属性的形式组织数据&#xff0c;节点代表实体&#xff0c;关系表示节点间的连接&#xff0c;属性则为节点和关系附加信息。Neo4j 使用 Cypher 查询语言&#xff0…...

JAVA服务内存缓慢上涨,年轻代GC正常但Full GC频繁,如何定位?

1. 分析 &#xff1a; 年轻代GC正常&#xff0c;说明年轻代的对象回收没有问题&#xff0c;可能大部分对象都是朝生夕死的&#xff0c;所以Minor GC能有效清理。但Full GC频繁&#xff0c;通常意味着老年代空间不足&#xff0c;导致频繁进行Full GC来回收老年代。而内存缓慢上…...

C++入门(讲解1)

1. namespace的定义 1.1 定义命名空间&#xff0c;需要用到namespace关键字&#xff0c;后面跟命名空间的名字&#xff0c;然后接一对{}即可&#xff0c;{}中就是命名空间的成员。命名空间中可以定义变量/函数/类型等。 1.2 namespace的本质是定义出一个域&#xff0c;这个…...

react的ant-design-pro框架左侧菜单修改为动态路由

在使用 React 框架结合 Ant Design Pro 进行项目开发时&#xff0c;动态路由的修改是一项常见且重要的任务。动态路由能够根据用户的角色、权限或者其他运行时的条件来展示不同的页面内容&#xff0c;极大地提升了应用的灵活性和安全性。本文将结合一个完整的示例项目&#xff…...

【教程】Windows通过网线共享网络给其它设备

转载请注明出处&#xff1a;小锋学长生活大爆炸[xfxuezhagn.cn] 如果本文帮助到了你&#xff0c;欢迎[点赞、收藏、关注]哦~ 1、打开“控制面板”。 2、点击“网络和共享中心”。 3、点击“更改适配器设置”。 4、选中要共享的网络适配器&#xff0c;右击选中“属性”。 5、勾选…...

百度AI开发者大会:连发多款AI应用,覆盖AI数字人等热门赛道

4月25日&#xff0c;Create2025百度AI开发者大会在武汉隆重举办。百度创始人李彦宏发表了题为《模型的世界 应用的天下》的演讲。60分钟的演讲中&#xff0c;李彦宏发布了两大模型&#xff0c;多款热门AI应用&#xff0c;并宣布将帮助开发者全面拥抱MCP。 当天发布的文心大模型…...

Java 线程的六种状态与完整生命周期详解

&#x1f680; Java 线程的几种状态详解 在 Java 中&#xff0c;线程状态&#xff08;Thread State&#xff09;是由 Thread.State 枚举定义的&#xff0c;总共有六种&#xff1a; 状态含义典型场景示例NEW新建状态&#xff0c;线程对象刚创建&#xff0c;还未调用 start() 方…...

05--Altium Designer(AD)的详细安装

一、软件的下载 Altium Designer官网下载 1、临近五一的假期&#xff0c;想着搞个项目&#xff0c;且这个项目与PCB有关系&#xff0c;所以就下这个软件来玩玩。下面保姆级教大家安装。 2、选择适合自己的版本下载&#xff08;我安装的是24的&#xff09; 3、软件安装 1.下…...

2:QT联合HALCON编程—图像显示放大缩小

1.声明事件 #include <HalconCpp.h> using namespace HalconCpp;#include <QCloseEvent>//滚轮事件 2.在.h文件中声明和定义公共全局变量&#xff0c;以及图像缩放的函数 void wheelEvent(QWheelEvent *event);//定义函数HTuple wcRow0, wcRow1, wcCol0, wcCol1,m…...

Java 队列与阻塞队列全面解析:从 Queue 到 TransferQueue 的实现与应用

文章目录 Queue队列QueueDeque 阻塞队列BlockingQueueArrayBlockingQueueLinkedBlockingQueuePriorityBlockingQueueSynchronousQueueDelayQueue BlockingDequeLinkedBlockingDeque TransferQueueLinkedTransferQueue Queue Queue&#xff08;队列&#xff09;是一种特殊的线性…...

服务器虚拟化:技术解析与实践指南

在信息技术飞速发展的今天,企业对服务器资源的需求日益增长,传统物理服务器存在资源利用率低、部署周期长、管理成本高等问题。服务器虚拟化技术应运而生,它通过将物理服务器的计算、存储、网络等资源进行抽象和整合,划分成多个相互隔离的虚拟服务器,从而提高资源利用率、…...

【蓝桥杯省赛真题56】Scratch抓不住的蜜蜂 蓝桥杯scratch图形化编程 中小学生蓝桥杯省赛真题讲解

目录 scratch抓不住的蜜蜂 一、题目要求 1、准备工作 2、功能实现 二、案例分析 1、角色分析 2、背景分析 3、前期准备 三、解题思路 四、程序编写 五、考点分析 六、推荐资料 1、scratch资料 2、python资料 3、C++资料 scratch抓不住的蜜蜂 第十五届青少年蓝桥…...

线程池(二):深入剖析synchronized关键字的底层原理

线程池&#xff08;二&#xff09;&#xff1a;深入剖析synchronized关键字的底层原理 线程池&#xff08;二&#xff09;&#xff1a;深入剖析synchronized关键字的底层原理一、基本使用1.1 修饰实例方法1.2 修饰静态方法1.3 修饰代码块 二、Monitor2.1 Monitor的概念2.2 Moni…...

【线段树】P8539 「Wdoi-2」来自地上的支援|普及+

P8539 「Wdoi-2」来自地上的支援 题目背景 波光粼粼的山顶湖与庄严神圣的神社之下&#xff0c;是一座复合型活火山。 沿幻想风穴而下&#xff0c;便能到达火山之下&#xff0c;废弃已久的地狱原址。 在旧地狱中&#xff0c;有一座大都市。那里是旧地狱还是地狱的时候在那工作…...

《TCP/IP详解 卷1:协议》之第七、八章:Ping Traceroute

目录 一、ICMP回显请求和回显应答 1、ICMP回显请求 2、ICMP回显应答 二、ARP高速缓存 三、IP记录路由选项&#xff08;Record Route&#xff0c;RR&#xff09; 1、记录路由选项的工作过程 2、RR 选项的 IP 头部格式 2.1、RR 请求 2.2、RR响应 四、ping 的去返路径 五…...