创建环境

基于vite

使用yarn

  1. yarn create vite

使用npm(接下来以此为例)

  1. npm init vite

然后跟着提示一步一步走就行了。

基于vue-cli

  1. vue ui # 接下来就是可视化的了
  1. "eslintConfig": {
  2. "root": true,
  3. "env": {
  4. "node": true
  5. },
  6. "extends": [
  7. "plugin:vue/vue3-essential",
  8. "eslint:recommended"
  9. ],
  10. "parserOptions": {
  11. "parser": "@babel/eslint-parser"
  12. },
  13. "rules": {
  14. "vue/multi-word-component-names": "off" //加上这一样,这样组件命名就可以任意了
  15. }
  16. },

规范(重要)

我们开发的项目是多页面的,所以 vue-router 和 pinia 也成为了必选项,就像一个团队需要人员配比,Vue 负责核心,pinia 负责管理数据,vue-router 负责管理路由。我们在 geek-admin 目录中使用下面这段代码安装piniavue-router

  1. npm install vue-router@next pinia@next
  1. yarn add vue-router@next pinia@next

无规矩不成方圆,团队项目中的规范尤其重要。我们先对几个文件夹的分层进行规定,便于管理,下面是 src 目录的组织结构(重要!!!!!)

  1. ├── src
  2. ├── api 数据请求
  3. ├── assets 静态资源
  4. ├── components 组件
  5. ├── pages 页面
  6. ├── router 路由配置
  7. ├── store vuex数据
  8. └── utils 工具函数

我们的页面需要引入路由系统,我们进入到 router 文件夹中,新建 index.js,写入下面的代码:

  1. import {
  2. createRouter,
  3. createWebHashHistory,
  4. } from 'vue-router'
  5. import Home from '../pages/home.vue'
  6. import About from '../pages/about.vue'
  7. const routes = [
  8. {
  9. path: '/',
  10. name: 'Home',
  11. component: Home
  12. },
  13. {
  14. path: '/about',
  15. name: 'About',
  16. component: About
  17. }
  18. ]
  19. const router = createRouter({
  20. history: createWebHashHistory(),
  21. routes
  22. })
  23. export default router

再来到main.js中使用我们刚刚定义的路由:

  1. import { createApp } from 'vue'
  2. import App from './App.vue'
  3. import router from './router/index'
  4. createApp(App)
  5. .use(router)
  6. .mount('#app')

此时会发现报错,因为在src/router/index.js中引入的两个组件我们并没有定义。现在我们到pages文件夹下定义两个.vue文件:

  1. <template>
  2. <h1>这是关于页面</h1>
  3. </template>
  1. <template>
  2. <h1>这是首页</h1>
  3. </template>

此时报错解决。但是页面并没有发生什么变化,因为我们只是定义了它们,还没有用,去src/App.vue改写代码:

  1. <template>
  2. <div>
  3. <router-link to="/">首页</router-link> |
  4. <router-link to="/about">关于</router-link>
  5. </div>
  6. <router-view></router-view>
  7. </template>

回到浏览器:
image.png
至此,我们的自定义页面完成。
最后这个项目的架构大概是下面这样(虽然有些工具目前还没有安装),这就是一个足以应对复杂项目开发的架构了:
image.png

一些插件

VueUse

简介:use是封装函数时的命名惯例,所以该库封装了许多功能,开箱即用
安装:

  1. npm i @vueuse/core
  2. yarn add @vueuse/core

GitHub:https://github.com/vueuse/vueuse
官网:https://vueuse.org/

  1. <template>
  2. <button @click="toggle">全屏模式</button> <!--点击即可进入全屏-->
  3. </template>
  4. <script setup>
  5. import { useFullscreen } from '@vueuse/core'
  6. const { isFullscreen, enter, exit, toggle } = useFullscreen()
  7. </script>

VueUse 是 Vue 官方团队成员的作品,它提供了一大批工具函数,包含了很多我们常用的工具函数,我们可以把网络状态、异步请求的数据、动画和事件等功能,都看成是响应式的数据去管理。