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

Vue 3 (2) 模块化开发入门教程(ESM方式)

一、什么是模块化开发?

在 Vue 2 中,我们常用如下方式引入 Vue:

<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>

在这种方式中,Vue 是作为全局对象存在的,开发体验类似于 jQuery。

        而在 Vue 3 中,你可以通过原生 JavaScript 模块(ES Modules)方式来开发 Vue 应用,更加规范和现代化,方便未来集成构建工具(如 Vite、Webpack)。


二、文件结构

我们需要两个文件:

项目目录/
│
├── index.html               # 主页面
└── vue.esm-browser.js       # Vue 官方提供的 ESM 构建文件(可通过 CDN 下载)

你可以从 https://unpkg.com/vue@3/dist/vue.esm-browser.js 下载 vue.esm-browser.js 文件并放在项目根目录下。


三、模块化开发示例代码

以下是一个完整的 HTML 页面,通过模块化方式使用 Vue 编写响应式应用:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8" /><meta name="viewport" content="width=device-width, initial-scale=1.0"/><title>Vue 模块化开发示例</title>
</head>
<body><div id="app"><p>{{ message }}</p><h1>{{ web.title }}</h1><h2>{{ web.url }}</h2></div><script type="module">// 从 vue.esm-browser.js 中导入 Vue 核心 APIimport { createApp, reactive } from './vue.esm-browser.js'// 创建 Vue 应用createApp({setup() {// 使用 reactive 定义响应式对象const web = reactive({title: "theodore的博客",url: "https://blog.csdn.net/Theodore_1022"})// 返回模板中要使用的数据return {message: "Hello Vue 模块化开发!",web}}}).mount('#app')</script>
</body>
</html>

四、如何运行

由于使用了 ES 模块,浏览器必须在本地服务器环境下加载此页面,否则可能会遇到跨域错误。

本地启动服务器(任选其一):

方法一:使用 VS Code 插件「Live Server」
  1. 安装插件;

  2. 右键 index.html

  3. 选择 Open with Live Server

  4. 页面自动在浏览器中打开并运行。

方法二:使用 Python 启动服务器
# 在终端中进入项目目录,然后运行:
python -m http.server 8000# 浏览器访问:
http://localhost:8000/index.html

五、核心知识点解读

语法说明
type="module"允许使用 import/export,启用原生模块语法
import { createApp, reactive }模块化引入 Vue 的核心 API
setup()Vue 3 Composition API 的入口函数
reactive()创建响应式对象
createApp({...}).mount()创建并挂载 Vue 实例

六、模块化开发的优势

  • 结构清晰:更易管理多个组件和功能模块;

  • 符合现代标准:为使用构建工具如 Vite/Webpack 奠定基础;

  • 便于复用:可以按需引入、导出 Vue 相关模块;

  • 便于扩展:后续可轻松迁移到完整的工程化开发模式。

http://www.xdnf.cn/news/8856.html

相关文章:

  • 32-低功耗与钩子函数
  • 人工智能数学基础实验(四):最大似然估计的-AI 模型训练与参数优化
  • 电路图识图基础知识-回路编号及代号(四)
  • 微信小程序常用方法
  • QListWidgetItem的函数介绍
  • Leetcode刷题 | Day67_图论12_Floyd算法 / A*算法
  • Kafka Consumer工作流程
  • 大数据治理:大数据环境下协同办公系统的数据串联与深度分析
  • python打卡训练营打卡记录day36
  • Windows系统部署Redis
  • Spring Cloud项目登录认证从JWT切换到Redis + UUID Token方案
  • 阿里千问系列:Qwen3技术报告解读(上)
  • 力扣第451场周赛
  • Linux基本指令篇 —— cd指令
  • 练习实践--deepseek的使用环境搭建回顾--火山方舟
  • (每日一道算法题)实现 pow(x, n) 的快速幂解法
  • 本地处理 + GPU 加速 模糊视频秒变 4K/8K 修复视频老旧素材
  • 前端协同文档实现思路
  • LLaMA-Factory 微调模型与训练数据量对应关系
  • 【每日一题 | 2025年5.19 ~ 5.25】动态规划相关题
  • 篇章一 数据结构——前置知识(一)
  • Java 类加载机制详解
  • 【SCL编程案例】1-16整数的随机排列
  • leetcode hot100刷题日记——第一周没做好的题目总结
  • C#拾遗补漏之 Dictionary 详解
  • 【从0到1搞懂大模型】chatGPT 中的对齐优化(RLHF)讲解与实战(9)
  • uniapp报错mongo_cell_decision_not_found
  • Python年快乐!祝福语大全。
  • 从零开始:Python语言进阶之迭代器
  • JVM——JNI 的运行机制