computed函数
computed在vue3中是一个组合式API,在使用之前得引入,他是一个函数,可以在实例当中多次使用。
1 2 3 4 5 6 7 8 9 10 11 12 13
| <script> import {reactive,computed} from 'vue' export default { setup(){ let data = { msg: '高兴!' } let mood = computed({ return `今天的心情很${data.msg}` }) } } </script>
|
这种方法实现简单的计算属性,但是却是一个只读的属性,想要实现读和写需要对其进行完善。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| <script> import {reactive,computed} from 'vue' export default { setup(){ let data = { msg: '高兴!' } let mood = computed({ get(){ return `今天的心情很${data.msg}` }, set(value){ return `今天的心情很${value} } }) } } </script>
|
watch函数
vue3的监视属性也是组合式API,在使用的时候也需要引入。
1 2 3 4 5 6 7 8 9 10 11 12
| <script> import {ref,watch} from 'vue' export default { setup(){ let data = ref('你好啊!') watch(data,(newValue,oldValue) => { console.log('data的值变了',newValue,oldValue) }) } } </script>
|
这是监视一个数据的时候,如果需要监视多个数据,将第一个参数换成一个数组,将要监视的数据放在数组当中,如果要监视reactive里边对象的某一个属性,需要将第一个参数写成一个函数,将想要监视的属性返回出来,监视多个属性也是类似,将函数放在一个数组当中即可。
当然,想要配置监视属性,还有第三个参数,就是配置对象。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| <script> import {ref,watch} from 'vue' export default { setup(){ let data = ref('你好啊!') watch(data,(newValue,oldValue) => { console.log('data的值变了',newValue,oldValue) },{ immediate:true, deep:true }) } } </script>
|