Vue 2.11

一、Pinia 快速入门

**1.**什么是Pinia

Pinia 是 Vue 的最新 状态管理工具 ,是 Vuex 的 替代品

(1)提供更加简单的API (去掉了 mutation )

(2)提供符合,组合式风格的API (和 Vue3 新语法统一)

(3)去掉了 modules 的概念,每一个 store 都是一个独立的模块

(4)配合 TypeScript 更加友好,提供可靠的类型推断

**2.**手动添加Pinia到Vue项目

(1)使用 Vite 创建一个空的 Vue3 项目

npm create vue@latest

(2)按照官方文档 安装 pinia 到项目中

**3.**Pinia基础使用 - 计数器案例

(1)定义store

(2)组件使用store

**4.**getters实现

Pinia中的 getters 直接使用 computed函数 进行模拟, 组件中需要使用需要把 getters return出去

**5.**action异步实现

(1)编写方式:异步action函数的写法和组件中获取异步数据的写法完全一致

(2)接口地址:http://geek.itheima.net/v1_0/channels

(3)需求:在Pinia中获取频道列表数据并把数据渲染App组件的模板中

**6.**storeToRefs工具函数

使用storeToRefs函数可以辅助保持数据(state + getter)的响应式解构

**7.**Pinia的调试

Vue官方的 dev-tools 调试工具 对 Pinia直接支持,可以直接进行调试

**8.**Pinia持久化插件

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

(2)安装插件 pinia-plugin-persistedstate

npm i pinia-plugin-persistedstate

(3)main.js 使用

import persist from 'pinia-plugin-persistedstate'

...

app.use(createPinia().use(persist))

(4)store仓库中,persist: true 开启

**9.**总结

二、Vue3 大事件管理系统

**1.**大事件项目介绍 和 创建

(1)Vue3 大事件管理系统

①在线演示:https://fe-bigevent-web.itheima.net/login

②接口文档: https://apifox.com/apidoc/shared-26c67aee-0233-4d23-aab7-08448fdf95ff/api-93850835

③基地址:http://big-event-vue-api-t.itheima.net

(2)pnpm 包管理器 - 创建项目

一些优势:比同类工具快2倍左右、节省磁盘空间... https://www.pnpm.cn/

安装方式:npm install -g pnpm

创建项目:pnpm create vue

(3)创建项目

① 进入项目目录 ② 安装依赖 ③ 启动项目

=>

**2.**Eslint 配置代码风格

配置文件 .eslintrc.cjs

(1)prettier 风格配置 https://prettier.io

① 单引号 ② 不使用分号 ③ 宽度80字符

④ 不加对象|数组最后逗号 ⑤ 换行符号不限制(win mac 不一致)

(2)vue组件名称多单词组成(忽略index.vue)

(3)props解构(关闭)

提示:安装Eslint且配置保存修复,不 要开启默认的自动保存格式化

**3.**配置代码检查工作流

(1)提交前做代码检查

① 初始化 git 仓库,执行 git init 即可

② 初始化 husky 工具配置,执行pnpm dlx husky-init && pnpm install即可

https://typicode.github.io/husky/

③ 修改 .husky/pre-commit 文件

问题:pnpm lint 是全量检查,耗时问题,历史问题

(2)暂存区 eslint 校验

① 安装 lint-staged 包pnpm i lint-staged -D

② package.json 配置 lint-staged 命令

③ .husky/pre-commit 文件修改

=>

(3)总结

**4.**目录调整

**5.**vue-router4 路由代码解析

(1)路由初始化

=>

  1. 创建路由实例由 createRouter 实现

  2. 路由模式

① history 模式使用 createWebHistory()

② hash 模式使用 createWebHashHistory()

③参数是基础路径,默认/

(2)总结

创建一个路由实例,路由模式是history模式,路由的基础地址是 vite.config.js中的 base 配置的值,默认是 / , 环境变量地址:https://cn.vitejs.dev/guide/env-and-mode.html

**6.**引入 Element Plus 组件库

(1)按需引入 Element Plus

① 安装: pnpm add element-plus

② 配置按需导入:

官方文档:https://element-plus.org/zh-CN/guide/quickstart.html

③ 直接使用组件

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

**7.**Pinia 构建仓库 和 持久化

**8.**Pinia 仓库统一管理

(1)pinia 独立维护

现在:初始化代码在 main.js 中,仓库代码在 stores 中,代码分散职能不单一

优化:由 stores 统一维护,在 stores/index.js 中完成 pinia 初始化,交付 main.js 使用

(2)仓库 统一导出

现在:使用一个仓库 import { useUserStore } from `./stores/user.js` 不同仓库路径不一致

优化:stores/index.js统一导出,导入路径统一`./stores`,而且仓库维护在stores/modules 中

**9.**数据交互 - 请求工具设计

**10.**整体路由设计

相关推荐
程序员黑豆21 分钟前
鸿蒙应用开发:一次开发多端部署之响应式布局完全指南
前端·harmonyos
小月土星1 小时前
2.0 React Router 前端路由深度解析:从传统后端路由到现代 SPA 的完整演进
前端
To_OC2 小时前
LC 35 搜索插入位置:二分查找谁都会,边界条件谁写谁懵
javascript·算法·leetcode
码哥DFS3 小时前
二叉树的直径
开发语言·javascript·算法
badhope3384 小时前
当所有AI都在抄同一份作业:前端模板的趋同、困局与破局
前端·ai·ai编程·前端开发·tailwind·ui设计
光影少年5 小时前
RN的Fabric 渲染流程
运维·前端·javascript·react native·react.js·fabric
__zRainy__5 小时前
React开始:直接在网站中使用React.js
前端·react.js·前端框架
用户059540174466 小时前
大模型长记忆评测踩坑实录:2000条错位记忆,让我排查了整整3小时
前端·css
码林鼠6 小时前
webpack的基本配置
前端·webpack·node.js
用户938515635076 小时前
React Router 进阶:路由守卫、登录鉴权与状态传递
前端·javascript·全栈