从零基础到最佳实践:Vue.js 系列(1/10):《环境搭建与基础概念》

Vue.js 环境搭建与基础概念

  • 关键点
    • Vue.js 是一个简单易用的前端框架,适合初学者快速上手。
    • 搭建开发环境需要安装 Node.js 和 npm/Yarn,推荐使用最新 LTS 版本。
    • Vue CLI 是官方工具,可快速创建项目并提供开发服务器。
    • Vue.js 基于 MVVM 模式,响应式系统是其核心特性,驱动数据与视图的自动同步。
为什么需要环境搭建?

要开发 Vue.js 应用,首先需要一个前端开发环境,包括 Node.js(运行 JavaScript 的环境)和 npm 或 Yarn(管理依赖的工具)。Vue CLI 帮助快速生成项目结构,省去手动配置的麻烦。

核心概念简介

Vue.js 采用 MVVM(Model-View-ViewModel)模式,数据(Model)通过 ViewModel 与视图(View)绑定。响应式系统让数据变化自动更新界面,无需手动操作 DOM。

接下来做什么?

本文将引导你安装必要工具、创建第一个 Vue 项目,并理解 Vue.js 的核心概念,为后续学习打下基础。


从零基础到最佳实践:Vue.js 系列(1/10):《环境搭建与基础概念》

欢迎踏上 Vue.js 的学习之旅!Vue.js 是一个轻量、灵活且强大的前端框架,以其简单易学和高效开发而闻名。本系列专栏共 10 篇,从零基础到进阶技巧,再到项目实战,带你全面掌握 Vue.js。本文是第一篇,聚焦于环境搭建基础概念,为你开启 Vue.js 开发之门。我们将以轻松、易懂的语言,结合代码示例,详细讲解如何准备开发环境、创建项目,并理解 Vue.js 的核心机制。

1. 前端开发环境搭建

在开始 Vue.js 开发之前,我们需要搭建一个前端开发环境,包括安装 Node.js 和包管理工具(npm 或 Yarn)。这些工具是现代前端开发的基石,帮助我们运行 JavaScript 代码和管理项目依赖。

1.1 安装 Node.js

Node.js 是一个 JavaScript 运行时环境,允许在浏览器之外运行 JavaScript 代码。它是 Vue.js 开发的基础,因为许多工具(如 Vue CLI)依赖 Node.js。

  • 步骤

    1. 访问 Node.js 官网,下载最新 LTS(长期支持)版本(截至 2025 年 5 月,推荐版本为 20.11.0 或更高)。
    2. 按照安装向导完成安装,支持 Windows、macOS 和 Linux。
    3. 打开终端(Windows 使用命令提示符或 PowerShell,macOS/Linux 使用终端),运行以下命令验证安装:
      node -v
      
      如果返回版本号(如 v20.11.0),说明安装成功。
  • 注意:选择 LTS 版本以确保稳定性和兼容性。如果您需要管理多个 Node.js 版本,可以使用 nvm(Node Version Manager)。

1.2 安装包管理工具(npm 或 Yarn)

Node.js 自带 npm(Node Package Manager),用于安装和管理项目依赖。Yarn 是另一种流行的包管理工具,以速度快和一致性强著称。

  • npm:无需额外安装,随 Node.js 提供。验证版本:

    npm -v
    
  • Yarn(可选):如果您更喜欢 Yarn,可以通过 npm 全局安装:

    npm install -g yarn
    

    验证安装:

    yarn -v
    
  • npm vs Yarn:npm 是默认选择,易于上手;Yarn 提供更快的安装速度和离线缓存功能。两者功能类似,选择任一即可。

1.3 使用 nvm 管理 Node.js 版本(可选)

如果您在不同项目中需要使用不同版本的 Node.js,nvm 是一个方便的工具,可以轻松切换版本。

  • 安装 nvm
    • macOS/Linux
      curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash
      
    • Windows:下载并安装 nvm-windows。
  • 使用 nvm
    • 安装特定版本:
      nvm install 20.11.0
      
    • 切换版本:
      nvm use 20.11.0
      
    • 查看已安装版本:
      nvm list
      
2. Vue CLI 安装与项目初始化

Vue CLI 是 Vue.js 官方的命令行工具,用于快速创建和管理 Vue 项目。它提供预配置的项目结构、开发服务器和构建工具,极大简化开发流程。

2.1 安装 Vue CLI

确保 Node.js 和 npm 已安装,然后运行以下命令全局安装 Vue CLI:

npm install -g @vue/cli
  • 验证安装

    vue --version
    

    如果返回版本号(如 @vue/cli@5.0.8),说明安装成功。

  • 注意:Vue CLI 4.x 和 5.x 要求 Node.js 版本 8.9 或更高,推荐使用 10.x 或以上。如果您需要 Vue CLI 2.x 的旧功能,可以安装桥接工具:

    npm install -g @vue/cli-init
    
2.2 创建新项目

使用以下命令创建一个新 Vue 项目:

vue create my-project
  • 配置选项:运行后,Vue CLI 会提示您选择项目配置:

    • 默认预设:包含基本配置,适合快速开始。
    • 手动选择功能:允许选择 Vue 版本(2 或 3)、路由(Vue Router)、状态管理(Pinia 或 Vuex)、CSS 预处理器(如 Sass)、代码检查(ESLint)等。
  • 快速创建:若不想手动配置,可使用默认配置:

    vue create my-project --default
    
  • 图形界面(可选):Vue CLI 提供图形界面,运行以下命令:

    vue ui
    

    这会打开浏览器,显示一个可视化界面,引导您完成项目创建。

2.3 启动开发服务器

创建项目后,进入项目目录:

cd my-project

安装依赖:

npm install

启动开发服务器:

npm run serve
  • 访问项目:浏览器会自动打开(通常为 http://localhost:5173),显示 Vue.js 的欢迎页面。
  • 项目结构:新建的项目包含以下关键文件:
    • src/main.js:项目入口文件。
    • src/App.vue:根组件。
    • src/components/:存放子组件。
    • package.json:项目依赖和脚本配置。

Vue 项目结构示例

以下是 vue create 生成的典型项目结构:

my-project/
├── node_modules/        # 项目依赖
├── public/             # 静态资源
│   ├── index.html      # 主 HTML 文件
│   └── favicon.ico
├── src/                # 源代码
│   ├── assets/         # 静态资源(如图片、CSS)
│   ├── components/     # Vue 组件
│   ├── App.vue         # 根组件
│   └── main.js         # 入口文件
├── package.json        # 项目配置和依赖
└── README.md           # 项目说明
3. Vue.js 核心概念:MVVM 与响应式原理

Vue.js 的设计基于 MVVM(Model-View-ViewModel)模式,并以其强大的响应式系统为核心,实现了数据与视图的自动同步。

3.1 MVVM 模式

MVVM 是一种软件架构模式,将应用程序分为三个部分:

  • Model:数据模型,包含业务逻辑和数据(如用户信息、商品列表)。
  • View:用户界面,显示给用户(如 HTML 模板)。
  • ViewModel:连接 Model 和 View,处理数据绑定和用户交互。

在 Vue.js 中,组件的 datasetup 函数充当 ViewModel,管理响应式数据。例如:

<template><div><h1>{{ message }}</h1><button @click="updateMessage">更新消息</button></div>
</template><script>
export default {data() {return {message: 'Hello, Vue!'}},methods: {updateMessage() {this.message = 'Welcome to Vue.js!';}}
}
</script>

在这个例子中,data 中的 message 是 ViewModel 的一部分,与模板中的 {{ message }} 绑定。当 message 变化时,视图自动更新。

3.2 响应式原理

Vue.js 的响应式系统是其核心特性,确保数据变化自动触发视图更新。其工作原理基于依赖追踪发布-订阅模式

  • 依赖追踪:当组件渲染时,Vue.js 记录模板中使用的响应式数据。
  • 发布-订阅:当这些数据变化时,Vue.js 通知依赖它们的组件重新渲染。

在 Vue 3 中,响应式系统通过以下 API 实现:

  • ref:用于单个值的响应式引用。
  • reactive:用于创建响应式对象或数组。

示例:

<template><div><p>计数: {{ count }}</p><p>状态: {{ state.message }}</p><button @click="increment">增加</button></div>
</template><script setup>
import { ref, reactive } from 'vue';const count = ref(0);
const state = reactive({ message: 'Hello, Vue!' });function increment() {count.value++;state.message = `Count is now ${count.value}`;
}
</script>
  • refcount 是一个响应式引用,访问或修改时使用 .value
  • reactivestate 是一个响应式对象,属性变化会触发视图更新。
3.3 计算属性与侦听器
  • 计算属性:基于其他响应式数据计算值,依赖变化时自动更新。
  • 侦听器:在数据变化时执行自定义逻辑。

示例:

<template><div><p>价格: {{ price }}</p><p>折扣价: {{ discountedPrice }}</p><button @click="price += 10">增加价格</button></div>
</template><script setup>
import { ref, computed, watch } from 'vue';const price = ref(100);
const discount = ref(0.1);const discountedPrice = computed(() => price.value * (1 - discount.value));watch(price, (newPrice) => {console.log(`价格变为: ${newPrice}`);
});
</script>
  • 计算属性discountedPrice 基于 pricediscount 计算。
  • 侦听器watch 监听 price 变化,记录日志。
4. 实际应用场景
  • 环境搭建:Node.js 和 npm/Yarn 是前端开发的标配,Vue CLI 简化了项目初始化,适合快速原型开发。
  • MVVM 模式:在表单、列表等场景中,MVVM 模式让数据与视图分离,提高代码可维护性。
  • 响应式系统:用于动态更新界面,如实时显示用户输入、计算价格或更新状态。
5. 最佳实践
实践描述
使用 LTS 版本选择 Node.js LTS 版本以确保稳定性和兼容性。
选择合适的包管理器npm 适合简单项目,Yarn 适合需要高性能或离线缓存的场景。
利用 Vue CLI 图形界面使用 vue ui 简化项目配置,适合初学者。
理解响应式数据使用 refreactive 管理数据,确保视图与数据同步。
6. 2025 年趋势

截至 2025 年 5 月,Vue.js 3 是主流版本,推荐使用 Vite 替代 Vue CLI,因为 Vite 提供更快的构建速度和现代化开发体验。然而,Vue CLI 仍适合需要稳定配置的项目。响应式系统在 Vue 3 中更加灵活,Composition API 成为首选。

7. 总结

本文介绍了如何搭建 Vue.js 开发环境,包括安装 Node.js、npm/Yarn 和 Vue CLI,并创建第一个项目。我们还深入探讨了 Vue.js 的 MVVM 模式和响应式原理,结合代码示例展示了如何使用 refreactive、计算属性和侦听器。这些基础知识为后续学习组件、路由和状态管理奠定了基础。希望本文能帮助你顺利开启 Vue.js 之旅!

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

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

相关文章

使用docker compose部署dify(大模型开发使用平台)

Dify是一款生成式 AI 应用中间件&#xff0c;面向有私有部署与数据合规需求的企业用户&#xff0c;推动企业向 AI 时代转型。平台支持无代码构建&#xff0c;业务人员即可快速搭建与调试 AI 应用&#xff0c;显著降低开发门槛。 参考 https://docs.dify.ai/zh-hans/getting-s…

npm 安装时 SSL 证书过期问题笔记

问题描述: npm error code CERT_HAS_EXPIRED npm error errno CERT_HAS_EXPIRED npm error request to https://registry.npm.taobao.org/axios failed, reason: certificate has expired 这表明当前配置的 npm 镜像源&#xff08;淘宝镜像 https://registry.npm.taobao.org&…

力扣HOT100之二叉树: 236. 二叉树的最近公共祖先

果然&#xff0c;这道题二刷还是不会做&#xff0c;回去看卡尔视频了。结合灵神的题解&#xff0c;我对这道题有了一些新的理解。 首先这道题还是用递归来做&#xff0c;由于我们需要计算两个节点的最近公共祖先&#xff0c;一定是从下往上来遍历&#xff0c;只有先判断左右子树…

Word 转 HTML API 接口

Word 转 HTML API 接口 图像/转换 Word 文档转换为 HTML 文件转换 / 超高精度与还原度 文件转换 / Word。 1. 产品功能 超高精度与还原度的 HTML 文件转换&#xff1b;支持将 Word 文档转换为 HTML 格式&#xff1b;支持 .doc 和 .docx 格式&#xff1b;保持原始 Word 文档的…

idea 安装飞算-javaAI 插件使用

文章目录 前言idea 安装飞算-javaAI 插件使用1. 介绍一下飞算-AI2. 安装使用 前言 如果您觉得有用的话&#xff0c;记得给博主点个赞&#xff0c;评论&#xff0c;收藏一键三连啊&#xff0c;写作不易啊^ _ ^。   而且听说点赞的人每天的运气都不会太差&#xff0c;实在白嫖的…

Bert预训练任务-MLM/NSP

MLM MLM:Masked Language Mode:在每一个训练序列中以15%的概率随机地选中某个token进行MASK,当一个token被选中后&#xff0c;有以下三种处理方式&#xff1a; 80%的概率被[MASK]&#xff0c;如my dog is hairy->my dog is [MASK]10%的概率修改为随机的其他token,如my dog …

浏览器原生 Web Crypto API 实现 SHA256 Hash 加密

写在前面 在我上一篇文章 《node 后端和浏览器前端&#xff0c;有关 RSA 非对称加密的完整实践&#xff0c; 前后端匹配的代码演示》 中&#xff0c;我们使用 浏览器原生 Web Crypto API 实现了 RSA 的加密算法。 但是&#xff0c;在我之前的 《我设计的一个安全的 web 系统用…

5G 网络寻呼的信令及 IE 信息分析

一、寻呼信令的触发背景 在 5G 网络中,当网络侧有下行数据要发送给处于空闲态(RRC_IDLE)或非激活态(RRC_INACTIVE)的用户设备(UE)时,就会触发寻呼流程。这是因为在这些状态下,UE 与网络之间没有建立持续的无线资源控制(RRC)连接,网络需要通过寻呼机制来通知 UE 有…

印度语言指令驱动的无人机导航!UAV-VLN:端到端视觉语言导航助力无人机自主飞行

作者&#xff1a;Pranav Saxena, Nishant Raghuvanshi and Neena Goveas单位&#xff1a;比尔拉理工学院&#xff08;戈瓦校区&#xff09;论文标题&#xff1a;UAV-VLN: End-to-End Vision Language guided Navigation for UAVs论文链接&#xff1a;https://arxiv.org/pdf/250…

基于Zynq SDK的LWIP UDP组播开发实战指南

一、为什么选择LWIP组播? 在工业控制、智能安防、物联网等领域,一对多的高效数据传输需求日益增长。Zynq-7000系列SoC凭借其ARM+FPGA的独特架构,结合LWIP轻量级网络协议栈,成为嵌入式网络开发的理想选择。本文将带您实现: LWIP组播配置全流程动态组播组切换技术零拷贝数据…

(三)MMA(KeyCloak身份服务器/OutBox Pattern)

文章目录 项目地址一、KeyCloak二、OutBox Pattern2.1 配置Common模块的OutBox1. OutboxMessage2. 数据库配置OutboxMessageConfiguration3. 创建Save前的EF拦截器4. 创建Quartz后台任务5. 配置后台任务6. 注册服务2.2 创建OutBox的消费者1. 自定义IDomainEventHandler2. 定义抽…

初步认识HarmonyOS NEXT端云一体化开发

视频课程学习报名入口:HarmonyOS NEXT端云一体化开发 1、课程设计理念 本课程采用"四维能力成长模型"设计理念,通过“能看懂→能听懂→能上手→能实战”的渐进式学习路径,帮助零基础开发者实现从理论认知到商业级应用开发的跨越。该模型将学习过程划分为四个维度…

Vue百日学习计划Day43-45天详细计划-Gemini版

Day 43: Composable 函数基础与抽取简单逻辑 (~3 小时) 本日目标: 理解 Composable 函数的概念、优势&#xff0c;并学会如何将简单的、无状态的逻辑抽取为 Composable。所需资源: Vue 3 官方文档 (组合式函数): https://cn.vuejs.org/guide/reusability/composables.html 学…

C++:list容器,deque容器

list容器&#xff1a;双向链表容器&#xff0c;底层是双向链表。 简单使用如下&#xff1a; #include<iostream> #include<list> using namespace std;int main() {list<int> lst;lst.push_back(1);lst.push_back(2);lst.push_back(3);lst.push_front(4);l…

STM32之温湿度传感器(DHT11)

KEIL软件实现printf格式化输出 一般在标准C库是提供了格式化输出和格式化输入等函数&#xff0c;用户想要使用该接口&#xff0c;则需要包含头文件 #include &#xff0c;由于printf函数以及scanf函数是向标准输出以及标准输入中进行输出与输入&#xff0c;标准输出一般指的是…

【苍穹外卖】Day01—Mac前端环境搭建

目录 一、安装Nginx &#xff08;一&#xff09;安装Homebrew &#xff08;二&#xff09;Homebrew安装Nginx 1. 执行安装命令&#xff1a; 2. 验证安装&#xff1a; &#xff08;三&#xff09;启动与停止Nginx 二、配置Nginx 1. 替换nginx.conf 2. 替换html文件夹 三…

docker面试题(3)

如何临时退出一个正在交互的容器的终端&#xff0c;而不终止它 按ctrlp&#xff0c;后按ctrlq &#xff0c;如果按ctrlc会使容器内的应用进程终止&#xff0c;进而会使容器终止 很多应用容器都默认是后台运行的&#xff0c;怎么查看它们输出的日志信息 使用docker logs &#…

单片机设计_四轴飞行器(STM32)

四轴飞行器&#xff08;STM32&#xff09; 想要更多项目私wo!!! 一、系统简介 四轴飞行器是一种通过四个旋翼产生的升力实现飞行的无人机&#xff0c;其核心控制原理基于欧拉角动力学模型。四轴飞行器通过改变四个电机的转速来实现六自由度控制&#xff08;前后、左右、上下…

Vue 3 与 Vue 2 的区别详解

Vue 3 在性能、语法、响应式、类型系统等方面相比 Vue 2 做了大幅优化和改进。本篇将从多个维度详细对比 Vue 3 与 Vue 2 的核心区别。 &#x1f4cc; 核心对比表格 对比维度Vue 2Vue 3说明核心 API 模式Options APIComposition API&#xff08;兼容 Options&#xff09;Vue 3…

深入理解 Redisson 看门狗机制:保障分布式锁自动续期

在分布式系统的开发中&#xff0c;分布式锁是解决资源竞争、数据一致性问题的关键手段。Redisson 作为一个在 Java 领域广泛使用的 Redis 客户端框架&#xff0c;为我们提供了功能强大且易用的分布式锁实现。其中&#xff0c;看门狗&#xff08;watchDog&#xff09;机制更是 R…