Vue3管理系统(开发前调整)-Day1

一、配置路由

1.与vue2中路由对比

// createRouter 创建路由实例,===> new VueRouter()
// 1. history模式: createWebHistory()   http://xxx/user
// 2. hash模式: createWebHashHistory()  http://xxx/#/user

// vite 的配置 import.meta.env.BASE_URL 是路由的基准地址,默认是 ’/‘
// https://vitejs.dev/guide/build.html#public-base-path

// 如果将来你部署的域名路径是:http://xxx/my-path/user
// vite.config.ts  添加配置  base: my-path,路由这就会加上 my-path 前缀了

Vue 2 和 Vue 3 在很多方面都保持了相似性,但在路由管理方面,Vue 3 与 Vue 2 有一些关键的区别和改进。以下是 Vue 2 的 Vue Router 和 Vue 3 的 Vue Router 4 的一些主要区别:

  1. Composition API 集成

    • Vue 3 引入了 Composition API,这为编写更灵活和可复用的代码提供了一种新的方式。Vue Router 4 与 Composition API 紧密集成,允许你以更细粒度的方式使用路由功能。
  2. 更小的打包体积

    • Vue Router 4 相比 Vue Router 3 在打包体积上做了优化,减少了应用程序的最终打包大小。
  3. TypeScript 支持

    • Vue Router 4 改进了对 TypeScript 的支持,提供了更好的类型推断和类型安全。
  4. 路由守卫的变化

    • 在 Vue Router 4 中,路由守卫(导航守卫)进行了重构,提供了更清晰的 API 来管理路由守卫。
  5. onBeforeRouteUpdateonRouteChangeError

    • Vue 2 中组件内部的路由钩子 beforeRouteUpdate 和 beforeRouteEnter 被合并为 Vue 3 中的单个钩子 onBeforeRouteUpdate。同时,新增了 onRouteChangeError 钩子,用于捕获路由导航过程中的错误。
  6. linkrouter-link

    • 在 Vue 2 中,我们通常使用 <router-link> 组件来创建链接。而在 Vue 3 中,推荐使用 link 标签与 useLink 组合式函数来创建链接。
  7. useRouteruseRoute

    • Vue Router 4 提供了 useRouter 和 useRoute 组合式函数,允许你在组合式 API 中访问路由实例和当前路由。
  8. 模块化导入

    • Vue Router 4 鼓励更模块化的路由定义方式,你可以将路由定义分割成多个文件,然后组合它们。
  9. 嵌套路由命名视图

    • 在 Vue Router 4 中,对嵌套路由和命名视图的使用有所改进,提供了更清晰的 API。
  10. 滚动行为

    • Vue Router 4 改进了滚动行为的配置,允许更细粒度的控制。
  11. 自动代码拆分

    • Vue Router 4 支持自动代码拆分,允许你按需加载路由组件,这有助于进一步减少应用程序的初始加载时间。
  12. 兼容性

    • 重要的是要注意,Vue Router 4 仅兼容 Vue 3。如果你正在使用 Vue 2,你需要使用 Vue Router 3。

这些是 Vue 2 和 Vue 3 路由系统的主要区别。Vue Router 4 带来了一些改进,使得它更贴合 Vue 3 的设计理念,同时也提高了性能和类型安全性。如果你正在从 Vue 2 迁移到 Vue 3,理解这些变化对于顺利过渡是很重要的。

二、.引入Element-ui组件

官方文档:一个 Vue 3 UI 框架 | Element Plus

https://element-plus.org/zh-CN/

3步,推荐看官网

首先你需要安装unplugin-vue-components 和 unplugin-auto-import这两款插件

彩蛋:默认 components 下的文件也会被自动注册~

npm install -D unplugin-vue-components unplugin-auto-import

然后把下列代码插入到你的 Vite 或 Webpack 的配置文件中

这里插件需要自己在

// vite.config.ts

配置一下

vite介绍:

  1. Vite

    • Vite 是一个现代化的前端构建工具,它提供了丰富的功能来加速开发过程。Vite 在开发环境下使用原生的 ES 模块导入(ESM)来提供快速重载,这意味着它不需要打包操作,从而大幅度加快了开发服务器的启动时间和热模块替换的速度。在生产环境下,Vite 使用 Rollup 或其他打包器进行高效的应用打包。

Vue 3Vite 结合使用时,可以带来以下优势:

  • 快速开发:Vite 通过避免打包操作,使得开发服务器能够即时反馈更改,提供极快的响应速度。
  • 简化配置:Vite 旨在提供开箱即用的体验,许多功能在默认情况下都是预配置的,这简化了项目配置的复杂性。
  • 现代框架特性:Vue 3 的新特性与 Vite 的现代化构建方式相结合,使得开发者能够更加专注于业务逻辑而不是配置细节。
  • 高性能生产构建:虽然 Vite 在开发环境中避免了打包,但它使用 Rollup 等打包器为生产环境生成最小化的资产,确保了应用的性能。

在 Vue 3 项目中使用 Vite 通常涉及以下步骤:

  1. 创建项目:使用 Vue CLI 或 Vite 自己的创建工具(如 create-vue)来初始化一个新的 Vue 3 项目。
  2. 开发:利用 Vite 提供的本地开发服务器进行开发,该服务器支持热模块替换和快速重载。
  3. 构建:使用 Vite 运行构建命令,它会调用底层的 Rollup 打包器来生成优化后的应

用程序,准备部署到生产环境。

三、pinia(仓库)

1.store 下 user.js定义

import { defineStore } from 'pinia'
import { ref } from 'vue'
//用户模块
export const useUserStore = defineStore('user', () => {
  const token = ref('')
  const setToken = (newtoken) => {
    token.value = newtoken
  }
  const removeToken = () => {
    token.value = ''
  }
  //别忘了抛出
  return { token, setToken, removeToken }
})

2.组件内部接收

<script setup>
import { useRouter } from 'vue-router'
import { useUserStore } from './stores/user'
const router = useRouter()
// const route = useRoute()
const golist = () => {
  // $router.push('/list')//一种
  router.push('/list') //第二种
}
const UserStore = useUserStore()
console.log(UserStore.userInfo)
</script>

<template>
  <div>
    <p>{{ UserStore.token }}</p>
    <el-button @click="$router.push('/home')">跳转1</el-button>
    <el-button @click="golist">跳转2</el-button>
    <el-button @click="UserStore.setToken('123')">登录</el-button>
  </div>
</template>

3.持久化存储

官方文档:https://prazdevs.github.io/pinia-plugin-persistedstate/zh/

推荐看官网

注意位置:

    return { token, setToken, removeToken }
  },

  // 持久化
  {
    persist: true
  }
)

推荐Index.js写法简化代码:

当store中文件多起来的时候,我们希望遵循程序的高耦合,将关于store的配置从main.js文件中移除(独立维护),放到index文件中。

Store/index.js:

import { createPinia } from 'pinia'
import persist from 'pinia-plugin-persistedstate'

const pinia = createPinia()
pinia.use(persist)

// 持久化存储的配置
export default pinia

// 导出
// import { useUserStore } from './modules/user'
// export { useUserStore }

export *from './modules/user'//等同于上面两句

组件中引入时简化代码(统一导出

import { useUserStore ,...其他仓库} from './stores'

  • 31
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值