以下分别从vue2-vue3 不同的方便进行学习,主要包含api风格、什么是响应式api、vue3中的计算属性、vue3中的响应式监听、vue3中的组件间传值、vue3中的动态组件、新状态管理pinia;

最后包含一部分TS学习的基础内容以及学习目标;

1.vue-api风格

选项式api、组合式api

2.响应式 api

ref:ref(初始值)函数包装的变量为响应式变量、该值变更时会触发重新渲染

reactive:reactive(引用类型)同理 ref ,但仅能操作对象、数组等引用类型

reactive(初始值)返回的引用可直接操作、无需 .value

reactive({})解构操作依然为只读、且丢失响应式

toRef:toRef(响应式对象,‘属性名称’)取出响应式对象x中的某个属性、且保持同源

响应式对象、取出的响应式属性会联动更新

toRefs:toRefs(响应式对象)将参数转为普通对象、但该对象的每个属性指向响应式对象属性

响应式对象会影响普通对象、反之则不行

toRefs 就是把响应式的reactive对象,分解成无数的响应式 ref

readonly:readonly(普通对象或变量|响应式/ref)返回原值的只读代理

isRef:isRef(变量)判断参数变量是否为 ref

isReactive:isReactive(变量)判断参数变量是否为 reactive

isReadonly:检查传入的值是否为只读对象

unRef:返回 unRef(参数是普值返回本身 | 参数是 ref 返回 ref. value)

shallowRef:与 ref 不同、shallowRef是浅层响应式、只对 .value 响应式

3.计算属性 computed

计算属性用于缓存计算结果、且完成计算逻辑封装[计算响应式数据]

computed(有返回值的函数)computed 会返回一个只读的 ref 引用

computed 返回的值被 vue 称为计算属性

需要注意的是:计算属性是带有响应式数据源追踪的

4.响应式监听 watch/watchEffect

watch:

监听当前组件一个或多个响应式数据源、并在数据源变化时调用所给的回调函数

执行次数:0-N次

注意: watch 也可在子组件中 监听父组件传递过来的响应式对象/属性

watchEffect:(组件内)

立即运行 watchEffect 参数函数且响应式地追踪其依赖、并在依赖更新时再次执行

watchEffect 执行次数:1~n

watchEffect 内部若操作响应式数据源且变更时、还会触发执行

5.组件传值

父传子:

数据为单向,传递给子组件后不可更改只可读,但保持数据特征(响应式依然是响应式)

通过defineProps Api 实现

子传父:

子组件定义自定义事件、父组件绑定该事件通过处理函数的参数获取数据

通过defineEmits Api 实现

依赖注入:

依赖注入允许数据跨级传递、但仅允许高 到 低传递(不支持反向流转)

import { provide, inject } from 'vue'

父级组件:provide('key', data)

儿孙组件:const data = inject("key')

前端VUE2迭代到VUE3+TS-学习手记_前端学习

使用比较少,尽量避免多组件嵌套的方式

6.动态组件

组件也可使用 v-if 控制显式或隐藏、但 vue 提供针对机制以获得更多控制行为

<component :is="组件名称" />[component 是 vue 内置类似组件的元素]

未在:is="组件名称” 中显式的组件、将被卸载

7.状态管理 pinia

模块定义:

状态管理模块约定于 . / src/stores/xxx.js 目录、一个文件对应一个状态管理模块

持久化:

持久化允许将 pinia 中的状态存储在 session/LocalStorage 对象上

pinia 持久化需安装插件 pinia-plugin-persistedstate 来支持

数据解构(对于复杂结构数据):

结构后方便使用,尽量不要去进行修改,按照统一规范进行pinia存储的状态进行修改,不好把控


8.TypeScript

  • dataType -> 数据类型
  • 基础类型
  • 联合类型
  • 类型断言
  • 类型推断
  • interfaceTs -> 接口类型
  • 可选属性
  • 只读属性
  • 函数类型
  • 类类型
  • 接口继承接口
  • classTs -> 类
  • 类的基本使用
  • 构造器
  • 继承 (父类与派生类)
  • 访问修饰符
  • 存取器
  • 静态属性、静态方法
  • 抽象类

  • function -> 函数
  • 命名函数
  • 匿名函数
  • 函数的可选参数和默认参数
  • 函数的剩余参数
  • 函数重载
  • 泛型、多个泛型