Vue3学习(仅为了记录,参考意义不大)

一.Vue3介绍

1.Vue3的优势

在这里插入图片描述
在这里插入图片描述

2.使用create-vue创建vue3项目

vue-cli是创建vue2.0的脚手架工具,create-vue是创建vue3的脚手架工具,create-vue构建速度非常快
在这里插入图片描述
在这里插入图片描述

3.vue3项目目录和关键文件

在这里插入图片描述
在这里插入图片描述

二.Vue3组合式API

1.setup选项

在这里插入图片描述
在这里插入图片描述
setup语法糖:
在这里插入图片描述
在这里插入图片描述
总结:
在这里插入图片描述

2.reactive和ref函数

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.computed

在这里插入图片描述
在这里插入图片描述

4.watch

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
开启深度监听同样的写法
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5.生命周期函数

beforeUnmount和unmounted对应beforeDestoryed和destoryed
在这里插入图片描述

6.父子同信

在这里插入图片描述
defineProps原理还是props,只不过在setup里面可以去接收使用
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

7.模板引用和defineExpose宏函数

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

8.provide和inject

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

三.Vue3.3新特性

1.defineOptions

在这里插入图片描述
在这里插入图片描述

2.defineModel

在这里插入图片描述
父组件里面写v-model,子组件里defineModel
在这里插入图片描述

四.Pinia

1.什么是pinia

在这里插入图片描述

2.在项目中添加pinia

在这里插入图片描述
pinia官网:https://pinia.vuejs.org/zh/introduction.html

3.基本语法

(推荐组合式API写法)
在这里插入图片描述

4.action异步写法

在这里插入图片描述
在这里插入图片描述

5.storeToRefs方法

直接解构,不处理,数据会丢失响应式原因:
store 是一个用 reactive 包装的对象,这意味着不需要在后面写 .value
reactive实现响应式,底层的原理是proxy,而proxy是针对对象进行劫持(整个关于数据的劫持监听,都是针对于对象的)
那么就意味着,只要对象在,对象里面的所有属性以及对象的子属性都能够监视到当前数据的修改
但是 一旦使用了解构,解构意味着声明了两个变量(count, msg),两个变量分别去存了对象里的两个值(值a和值b分别赋值到了count和msg变量里)
一旦赋值完成,这两个变量跟原来的响应式变量就无关了(相当于拷贝了一份数据丢到外面去了),所以丢失了响应式
为了从 store 中提取属性时保持其响应性,需要使用 storeToRefs()
使用场景:storeToRefs一般在数据很多的时候写,避免出现counterStore.XXX太多
在这里插入图片描述

6.pinia持久化

在这里插入图片描述
官网地址:https://prazdevs.github.io/pinia-plugin-persistedstate/zh/
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
其它配置可以查阅官网
在这里插入图片描述

五.大事件项目

1.pnpm

在这里插入图片描述
在这里插入图片描述

2.eslint和prettier

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  rules: {
    // prettier专注代码美观(格式化工具)
    // 1. 禁用prettier插件,并且关闭format on save
    // 2.安装Eslint插件,并配置保存时自动修复
    'prettier/prettier': [
      'warn',
      {
        singleQuote: true, // 单引号
        semi: false, // 无分号
        printwidth: 80, // 每行宽度至多80字符
        trailingComma: 'none', // 不加对象|数组最后逗号
        endofLine: 'auto' // 换行符号不限制 (win mac 不一致)
      }
    ],
    // eslint关注于规范
    'vue/multi-word-component-names': [
      'warn',
      {
        ignores: ['index'] // vue组件名称多单词组成 (忽略index.vue)
      }
    ],
    'vue/no-setup-props-destructure': ['off'], // 关闭 props 解构的校验
    // 添加未定义变量错误提示true,create-vue@3.6.3 关闭true,这里加上是为了支持下一个章节演示。
    'no-undef': 'error'
  }

3.基于husky的代码检查工作流

在这里插入图片描述
只需要对新写的代码规范(旧版代码一起校验消耗成本太大)
在这里插入图片描述
在这里插入图片描述

4.目录调整

在这里插入图片描述

5.路由语法解析

在这里插入图片描述
https://cn.vitejs.dev/guide/env-and-mode.html
在这里插入图片描述

6.引入elementPlus组件库

在这里插入图片描述
https://element-plus.gitee.io/zh-CN/guide/installation.html

7.pinia构建仓库和持久化

在这里插入图片描述
在这里插入图片描述

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

在这里插入图片描述
http://axios-js.com/zh-cn/docs/#axios

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值