vue3学习

资料: http://docs.vikingship.xyz/

 

声明类型:

     1.使用ref可以声明基础数据

     2.使用reactive声明对象数据  

     3.computed可以返回一个不变的响应式对象

     比vue2优势:可以直接新增或修改对象数据,也能实时更新

      

       基础数据:

      

      对象数据: 如果想直接用count,而不是data.count,就用展开运算符,注意:用展开运算符的时候需要用toRefs,才能保证数据实时响应

       

      一般数组用ref

      isRef() 判断是否是响应式数据

      unref()   其实就是isRef()封装的三元运算符

       

 

生命周期:

     beforeDestroy 变为 beforeUnmount

     destroyed        变为  unmounted

     其他都可以在setup函数中使用,前提是加上on

       

       

 

 侦测变化watch:

      监听响应式数据变化,并处理副作用逻辑

      可以监听多个,用数组存放

      

        

       

       也有第三个对象参数

        

      vue3中增加了watchEffect函数,作用和watch一样

      示例:

         

      区别:简而言之就是watch会明确侦听目标,watchEffect会自动追踪能访问到的响应式属性

               优点:watch更明确,watchEffect更简洁

                         watchEffect自带初始话自动加载,而watch需要手动添加immediate:true属性

 

    

      vue3中新增 {flush:'post'}  在DOM更新后才执行,用法和immediate和deep一样

      watchEffect可以用flush

           

 

功能模块化:

      vue3新加核心,就是功能模块化,相同功能不必在依靠mixin,直接在Setup()中使用

     例:

      

        

 

 teleport组件传送:

      可以将深层组件,渲染到指定dom元素上

      使用场景:深层fixed组件,有时候会因为父组件变为absolute组件,这个时候就可以传送出去

      

 

在setup中使用emit:

       

 

 Suspense:异步组件请求成功才显示

     类似骨架屏的作用,不用再写状态

      

     异步组件的setup必须返回一个promise,也可以使用下面的写法

     

 

 vue3变化的全局API:

     

 

 

 

setup中获取ref的dom元素:

     

      

 

子组件与父组件双向绑定:

     父组件:

      

     子组件:

      

 

$attrs:由父组件传递的属性或事件,子组件未声明props,会默认作用于子组件的根元素上

     1.父组件传递的属性

     

    2.子组件不接收,并且设置inheritAttrs:false

      

      3.绑定$attrs,这样子组件就能接收使用placeholder等属性

      

 

并列组件或兄弟组件或任意组件之间传值:

    vue3中可以借助插件 npm i mitt 来辅助

    https://www.npmjs.com/package/mitt

 

vue-router4:

     在vue3中setup的使用:使用钩子函数

      获取参数

      

      js跳转路由

        

 

Vuex4:

     vue3的setup中使用:钩子函数 useStore

 

posted @ 2023-04-23 17:44  fanbu  阅读(355)  评论(0编辑  收藏  举报