vue3学习笔记—setup中几种函数的应用

watch(监听)

watch(message, (newValue, oldValue) => {
  console.log("新的值:", newValue);
  console.log("旧的值:", oldValue);
});

 改变了响应式变量messgae的值,当它发生改变时,就会触发watch监听函数中的回调函数,并且默认接收两个参数(新值和旧值)

watchEffect

只接受一个回调函数,会自动监听数据,当回调函数里的响应式数据发生改变,它会随即立即执行

watchEffect(()=>{
  console.log("新的值:", number.count);
})

computed(计算属性)

默认使用getter属性,读取数据,返回一个带有value属性的对象,打印得加.value

    const msg = ref('helloworld');
    const reverseMsg = computed(()=>{//返回一个带有value属性的对象
      return msg.value.split('').reverse().join('');
    });
    console.log(reverseMsg.value);

    computed:{
        reverseMsg:function(){
          return this.message.split('').reverse().join('')
    }
  }

生命周期钩子函数在setup中有一个参数,能多次使用

props

结构props是响应式的,可以在setup函数中用toRefs函数来完成

import { toRefs } from 'vue';
setup(props) {
    const { message } =toRefs(props);
    console.log(message.value);
  },

context

attrs :接收在父组件传递过来的,并且没有在props中声明的参数参数。

emit:子组件对父组件发送事件

    const counter=ref(20)
    function sendeParent(){
       context.emit('injectCounter',counter.value);
    } 
    context.expose({
      sendeParent,counter
    })
    return {sendeParent}
    <button @click="sendeParent">发送数据</button>

provide-inject

父组件只要声明了provide,在其子组件,孙组件,曾孙组件等能形成上下游关系的组件中交互,无论多深都能通过inject来访问provider中的数据

import {provide, ref} from 'vue';
setup(){
    const name = ref('张三')//ref使值变成响应式
    provide('name',name)
    function changeName(){
      name.value='李四'
    }
    return {changeName}
  },
import { inject } from 'vue';
setup() {
    const name = inject('name');
    return {name}
  },
<button @click="changeName">改变name</button>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值