Vue脚手架开发流程

一、项目运行时会先执行 public / index.html 文件

html 复制代码
<!DOCTYPE html>
<html lang="">
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width,initial-scale=1.0">
    <link rel="icon" href="<%= BASE_URL %>favicon.ico">
    <title><%= htmlWebpackPlugin.options.title %></title>
  </head>
  <body>
    <noscript>
      <strong>We're sorry but <%= htmlWebpackPlugin.options.title %> doesn't work properly without JavaScript enabled. Please enable it to continue.</strong>
    </noscript>
    <div id="app"></div>
    <!-- built files will be auto injected -->
  </body>
</html>

如果开发移动端,可以将 meta 标签换成以下内容,禁止用户手动缩放。

html 复制代码
<meta name="viewport" content="width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no">

二、执行 src / main.js 文件,在此文件中引入 Vue 与各种插件,并创建 Vue 实例。

javascript 复制代码
// 引入 Vue 中的 createApp 工厂函数
import { createApp } from "vue";
// 引入 App 根组件
import App from "./App.vue";
// 引入路由配置
import router from "./router";
// 引入 Vuex 状态管理
import store from "./store";

// 创建 Vue 实例,并将 App 根组件添加到页面中
const app = createApp(App);
// 应用 Vuex
app.use(store);
// 应用路由
app.use(router);
// 将 id 为 app 的元素挂载到 Vue 实例上
app.mount("#app");

注:Vue3 不能再使用 `import Vue from 'vue'` 引入 vue 的构造函数了,必须引入 createApp 这个工厂函数。因为 Vue3 删除了一些无用的内容,更加轻量级。

三、执行 main.js 中引入的各种插件,包括 src / router / index.js 路由配置文件

javascript 复制代码
import { createRouter, createWebHashHistory } from "vue-router";

// 引入组件(方式一)
import HomeView from "../views/HomeView.vue";

const routes = [
  {
    path: "/",            // 这个 / 表示首页
    name: "home",         // 路由名称
    component: HomeView,  // 使用组件(方式一)
  },
  {
    path: "/about",       // 路由路径
    name: "about",        // 路由名称
    // 路由懒加载(方式二)
    component: () => import("../views/AboutView.vue"),
  },
];

const router = createRouter({
  history: createWebHashHistory(),
  routes,
});

export default router;

四、执行 App.vue 根组件,通过 router-view 加载路由配置的首页(path 为 / 的页面)。

html 复制代码
<template>
  <router-view />
</template>

五、执行路由配置的首页 src / views / HomeView.vue 文件

html 复制代码
<template>
  <!-- Vue3 可以不写根标签 -->
  <p class="title">{{ title }}</p>
</template>

<script>
// Vue3 支持 Vue2 的写法
export default {
  name: "HomeView",
  data() {
    return {
      title: "首页"
    }
  }
}
</script>

<style scoped>
.title {
  background-color: aqua;
}
</style>

注:vue-cli 的目录结构并非一成不变,具体的执行流程还需要结合实际情况

原创作者:吴小糖

创作时间:2023.10.10

相关推荐
木木木一2 分钟前
Rust学习记录--C9 错误处理
前端·学习·rust
局外人LZ4 分钟前
libsodium.js:web端与 Node.js 的现代加密工具集,构建前端安全加密体系
前端·javascript·node.js
xkxnq9 分钟前
第二阶段:Vue 组件化开发(第 20天)
前端·javascript·vue.js
哈__12 分钟前
React Native 鸿蒙跨平台开发:Keyboard 键盘控制
javascript·react native·react.js
「、皓子~12 分钟前
AI 创作系列(34)海狸IM桌面版 v1.1 正式发布:Vite + Electron 性能优化与体验升级
前端·人工智能·electron·开源·开源软件·im
鹏程十八少13 分钟前
1.Android 3分钟跑通腾讯 Shadow 插件化官方Demo:零反射、手把手实战(基于源码依赖)
android·前端·面试
lili-felicity13 分钟前
React Native 鸿蒙跨平台开发:TextInput 数据键盘实现与最大文字长度限制
javascript·react native·react.js·harmonyos
光影少年13 分钟前
electron通信方式有哪些?
前端·javascript·electron
CodeSheep13 分钟前
这个老牌知名编程论坛,彻底倒下了!
前端·后端·程序员
BD_Marathon20 分钟前
搭建MyBatis框架之创建mapper接口(四)
java·前端