vue3学习心得

529 阅读2分钟

vue3的好处

  1. 实现代码的逻辑提取与复用
  2. diff算法更快
  3. 内存占比更少
  4. 打包体积变小
  5. compositon Api(组合式api):使用传统的option配置方法写组件的时候问题会导致后续维护非常的复杂,同时代码可复用性不高,而composition-api就是为了解决这个问题而生的

vue3移除的语法

vue3.0对于2.0版本的大部分语法都是可以兼容的,但是也有一些破坏性的语法更新,这个大家要格外注意

  1. 实例方法$on移除 (eventBus现有实现模式不再支持 可以使用三方插件替代)
  2. 过滤器filter移除 (插值表达式里不能再使用过滤器 可以使用methods替代)
  3. .sync语法移除 (和v-model语法合并)

搭建vue3

创建vue脚手架项目 yarn create 项目名称 也可以使用npm 个人习惯yarn

下载后可以在你的package-lock.json看到下载后的包

image.png

compositon-api提供了以下函数

  • reactive---处理简单数据
  • ref---简单、复杂数据
  • toRefs---模板中省略对象名称,直接使用属性名访问数据(state.user.name)可以省略state直接(user.name)
  • computed---计算属性可以使用多次
  • watch---侦听,分为普通侦听 立即执行 深度侦听
  • onmounted---生命周期函数
  • 其他.........

setup()函数

  1. 这些函数必须写在setup中,作为组件式api的起点
  2. setup中不能使用this,this为undefined
  3. 它会在beforecreated执行之前执行

ref()函数

  1. ref函数执行完的返回响应式数据是一个对象 如果想要在setup函数中修改 必须.value 模板中不需要
  2. ref函数弥补了reactive函数对于类型的支持不足
    推荐: 如果明确的知道要转化的对象key名称 就使用reactive函数 否则一律使用ref函数

image.png

想知道其他函数的使用方法敬请期待作者更新.......(大佬们也可以自己个研究)

组件传值

1.父传子 父传子通过props在子组件中接收

image.png

  1. setup函数提供俩个参数,第一个参数为props,第二个参数为一个对象context
  2. props为一个对象,内部包含了父组件传递过来的所有prop数据

2.子传父 子传父通过触发自定义事件使用emit

image.png

使用setup函数中的context对象,包含了attrs,slots, emit属性,其中的emit可以触发自定义事件的执行从而完成子传父

provide和inject

作用:不仅可以跨层传递数据,还可以通过provide/inject传递响应式数据

image.png

  1. 爷爷组件在setup方法中使用provide函数提供数据
  2. 孙子组件在setup方法中使用inject函数获取数据

image.png

今天的内容就到这里,本宫累了,改日见