V3 setup() 函数 ref() 函数 reactive 函数

V3 setup() 函数

  • setup函数是v3提供新的组件选项。

  • 之前的data、声明周期、自定义函数都可以放置在内

  • 在创建组件之前执行,初始化props,紧接着就调用setup函数,从生命周期钩子的视角来看,它会在beforeCreate钩子之前被调用

  • 是mixins的强化版,比mixins更加灵活

  • 因为setup()是在解析其它组件选项之前被调用的,所以避免使用this

  • 在setup函数中定义的变量和方法需要return出去,不然无法在模板中使用

目录

V3 setup() 函数

在setup函数中定义变量

V3 ref() 函数

V3 reactive 函数


在setup函数中定义变量

  setup函数里面有两种定义变量的方法,分别是 ref 和 reactive,这两种定义的数据类型是不一样的,注意区分。

V3 ref() 函数

在setup函数中,可以使用ref函数,用于创建一个响应式数据,当数据发生改变时,Vue会自动更新UI

例如:使用ref函数定义一个变量count:

<template>
    <h1>{{ count }}</h1>
    <button @click="change_count">点我</button>
</template>
<script>
import { ref } from 'vue'
export default {   
    setup() {  
        let count = ref(0);
        function change_count() {
            count.value += 1;
        }
        return { count, change_count }
    }
}
</script>

注意:

  • 在setup中定义的变量或方法,都必须通过return {xxx,xxx}暴露出去,外界才能使用

  • ref函数仅能监听基本类型的变化,不能监听复杂类型的变化(比如对象、数组)

V3 reactive 函数

用来检测复杂数据类型的变化

<template>
    <h1>{{ obj }}</h1>
    <button @click="change_age">点我</button>
</template>
<script>
import { reactive } from 'vue'
export default {   
    setup() {  
        let obj = reactive({ name: "Alice", age: 12 });
        function change_age() {
            ++obj.age
        }
        return { obj, change_age }
    }
}
</script>

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我可以用中文回答你的问题。 在Vue 3中,`ref`和`reactive`都是用于在Vue组件中创建响应式数据的函数。 `ref`函数接受一个参数,并返回一个响应式的对象。这个参数可以是任何JavaScript类型,包括对象、数组、字符串、数字等等。`ref`函数返回的响应式对象包装了传入的参数,使得该参数的任何变化都会被Vue自动检测到并触发重新渲染视图。要访问`ref`对象的值,需要使用`.value`属性。 例如: ``` import { ref } from 'vue' const count = ref(0) console.log(count.value) // 输出0 count.value++ // 修改count的值 console.log(count.value) // 输出1 ``` `reactive`函数也接受一个参数,但这个参数必须是一个普通的JavaScript对象。`reactive`函数会递归地将这个对象的所有属性转换成响应式的对象,从而实现响应式数据的功能。要访问`reactive`对象的值,可以直接使用对象属性访问方式。 例如: ``` import { reactive } from 'vue' const state = reactive({ count: 0 }) console.log(state.count) // 输出0 state.count++ // 修改state对象中count属性的值 console.log(state.count) // 输出1 ``` 总的来说,`ref`和`reactive`都是Vue 3中非常有用的响应式数据函数,用于实现组件中的数据绑定和响应式渲染。如果你只需要创建单一的响应式值,使用`ref`更为简单;如果你需要创建一个包含多个属性的响应式对象,使用`reactive`更为方便。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值