vue3.0-第一章之setup,ref / reactive

1.setup触发的时机是beforeCreate之前,所以setup内部访问不到this的概念
2.setup的写法与beforeCreate同级,内部有两个参数,且内部必须要用return暴露出去

  • props:上个组建的参数

  • context:

    1.attrs是上个页面传过来的属性,没有用props承接的都会在attrs里面展示,用props承接的都不展示在attrs内
    2.emit是抛出事件,如下方法:emitFn
    3.slots插槽,context.slots

setup(props,context){//props上个组建的参数,context:attrs/
    // props:上个组建的参数
    console.log(props);
    // context
    //1.attrs是上个页面传过来的属性,没有用props承接的都会在attrs里面展示,用props承接的都不展示在attrs内
    //2.emit是抛出事件,如下方法:emitFn
    //3slots插槽,context.slots
    
    let person = {
      count:0,
      name:"张三"
    }
    function emitFn(){
        context.emit("hellow",666)
    }
    let p = reactive(person)
    return {person,emitFn};
  }

3.setup内的ref
作用:使得定义的变量在dom中有双向绑定效果,ref只能监听简单数据类型,不能监听数组/对象变化
写法:

let a = 123;//正常定义的变量是没有双向绑定的,数据变化不会导致dom变化

//ref定义一个变量
let count = ref(0);
let json = ref({
  age:10,
  name:'张三'
});

let myFn=()=>{
        console.log(count.value);//0   通过value来修改count的值

        // ref只能通过value来控制数据,但是数组不能用下标来控制
        count.value = 1;
        json.value.age = 12;
        json.value.name = '李四';
    }
    // 要想在外界使用,必须通过return {xxx,xxxx}暴露出去
    return {count,json,myFn};

4.setup内的reactive
作用:只能定义对象类型的响应式数据
用法:
数组通过下标修改也可以监听到

let person = {
      count:0,
      name:"张三",
      age:18,
      arr: ["1","2","3"],
      json:{
        age:10,
        name:'张三'
      }
    }
    let p = reactive(person)
    // 定义一个方法
    let myFn=()=>{
      
        person.count = 1;
        person.json.age = 12;
        person.json.name = '李四';
        person.arr[0] = "10"
    }
    // 要想在外界使用,必须通过return {xxx,xxxx}暴露出去
    return {person,myFn};

下一章:vue3.0-第二章之 生命周期第一节

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值