注意: 这个函数要在setup() 函数里面使用的 并且使用之前需要先在 ‘@vue/composition-api’ 下引入
- 外部要访问这个对象里面的数据 就必须要将这个对象给 return 出去
- 使用起来就可以简单的理解成 这个return 出去的对象的使用方法 和原先 data(){} return 出去的对象一样的使用方法就行
在HTML部分使用
ref的使用
ref()函数和reactive()函数的作用类似,都可以创建作为外界响应式的变量,但是在使用的优先级上是ref()>reactive()
使用细节:
- 在内部需要直接访问的时候需要通过 .value 来获取
- Vue 做了默认的封装 return出去的时候相当于默认做了一层解构赋值 外部可以直接使用 ref 修饰过的对象来获取值
- setup里面的数据外部需要访问都需要 return 出去
ref()
函数与reactive()
函数的区别:
-
reactive()函数一次创建的是一个对象 如 const state = reactive({ number:1,age:11 }) 一次性可以创建很多值
-
ref() 函数一次性只能创建一个值 如: const number = ref(0)
- 使用案例:
isRefs()函数的使用
isRef() 函数 传递一个参数 如果该参数是通过 ref 创建出来的响应式数据 则返回true
toRefs()函数的使用
当setup()函数一次性要返回数据、方法等布置一个数据的时候,这时候使用
reactive()
函数创建的缺陷就体现出来了,一个方法只能有一个return语句,又没有办法写在一起return, 所以只能这时候只能将reactive()
创建的响应式对象拆开,但是拆开这些属性就缺失了响应式的功能,所以这时候就需要toRefs()
方法将单个数据转成响应式对象,这个也就是为什么ref()
使用的优先级比较高了。
当有多个数据需要访问的时候 就可以使用 toRefs() 函数 将数据转换成单个的响应式数据 再统一的返回
computed计算属性的使用
总体上和Vue2.x的功能是一个功能,只是写的方法改变了,添加了只读计算属性,和可读可写计算属性的概念,
- 只读的时候就正常的在
computed()
中通过箭头函数的方式设置值就再返回即可
- 如果是可读可写,就需要再
computed()
函数中传递一个对象,同时这个对象是有get
和set
来分别做读写功能的描述
watch()函数的使用
Vue3中的 watch 的功能 还是我们理解的那个watch的功能 和 Vue2x 是一样的 只是功能变得更加的强大
- 的第一个参数存放的是监听变量的值
如果是ref创建的直接输出创建的对象就行 如果是reactive创建的对象需要使用箭头函数导
当一次监听多个变量的时候 第一个对象可以以数组的形式写入
- watch第二个参数是一个函数有三个形参,分别是 新值、 旧值 和 清楚函数
如果是传递多个参数的时候 新值和旧值是可以通过解构赋值的方式分别导出的
清楚函数可以 清楚掉这个监听器的上次未完成的异步任务
- 第三个参数 {lazy:true/false} 分别表示的是页面一刷新会不会就执行一次watch监听
- 基础使用:
- 清楚watch监听
watch 的声明周期默认是在函数组件被创建到组件被销毁的过程,我们也可以中途的取消掉 watch
watch是一个函数 有一个返回值 我们只要以函数的形式执行以下 watch() 的返回值就能关闭掉 watch() 的监听
使用的 过程和方式 和我们使用定时器和关闭定时器的过程是一样的
- 清楚watch未完成的异步任务
watch() 的第二哥参数是一个函数 这个函数有三个参数 分别是 新值 旧值 清楚函数
清楚函数可以 清楚掉这个监听器的上次未完成的异步任务
防抖案例:
Vue3 生命周期函数
在Vue3的版本和Vue2版本不同的地方在于 Vue3 是将生命周期函数 全部都统一的写在 setup()函数里面
并对名字做了一些修改 都加上了on关键字 如 mounted() 现在变成 onMounted()方法,
并且都是以在里面传递函数的形式来执行的
其中有一个小注意点就是 我们发请求的事件 都应该写在
mounted()
里面,vue3就都应该写在onMounted()
函数里面,这个是官方推荐的写法,因为如果写在created()
里面,在使用服务端渲染的时候会出现一些问题。
- 具体的声明周期函数有:
- 使用方式
provide()、inject()
使用 provide inject 可以实现跨越父子之间的传值
比如父组件要给孙组件传值, 就可以在父组件用 provide(键,值) 的方式声明一个 其后代组件都可以使用的值
它的后代组件就可以使用 inject(键) 的方式来获取这个共享的值
使用方式就和 浏览器缓存 locoalStroage 的使用方式是类似的
使用了这个新特性之后 我们就可以不用一层一层的 props 组件传值, 当然这个也不是唯一的选择 Vuex 和其他的模式还是可以使用的
- 案例Demo
最后
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。
因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点!不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!
如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
droid开发知识点!不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!**
如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!