vue3.0 setup ref函数 reactive函数 conputed计算属性 teleport 移动html位置

Vue3.0引入了setup函数作为CompositionAPI的容器,用于定义组件的数据和方法。ref和reactive分别用于创建响应式的基本数据和复杂数据结构。ref适用于数字、字符串等,修改需用.value。reactive则用于深层响应式对象。computed用于创建计算属性,可读可写。teleport功能允许将HTML结构移动到指定位置。
摘要由CSDN通过智能技术生成

目录

setup

ref函数(最好用来定义基本数据类型,数字、字符串等)

reactive函数(只能用来定义对象和数组的响应式数据且定义的响应式数据是深层次的)

conputed计算属性

 teleport 将html结构移动到指定位置 (to指定元素, 被 teleport 包围的html就移动到该元素下)


 

setup

  • vue3.0中一个新的配置项,值为一个函数
  • setup相当于Composition API(组合式API)的容器,组件中用到的数据,方法等均配置在setup中
  • setup执行在beforeCreate钩子函数之前
  • setup接受的两个参数
  1. props:值为对象,包含组件外部传递且组件内部声明接收了的属性
  2. context:上下文对象
  • attrs:值为对象,包含组件外部传递且组件内部没有声明接收的属性
  • slots:收到的插槽内容
  • emit:分发自定义事件的函数(使用时需要在emits中定义要使用的自定义函数)
  • setup两种返回值
  1. 回一个对象,对象中的属性,方法在模板中可以直接使用
  2. 返回一个渲染函数,可以自定义渲染内容
  •  尽量不要与vue2.x混用
  1. vue2.x可以使用this.xxx访问到setup中属性和方法,但是setup中不能访问到vue2.x中配置;如果有重名,setup优先

ref函数(最好用来定义基本数据类型,数字、字符串等)

let str = "字符串";

直接定义变量不是响应式,响应式需要使用vue3.0 ref函数

let str = ref("字符串");

修改引用对象(ref)的数据时,需要使用.value进行修改,否则不生效

let str = ref("字符串");
str.value = "不是字符串";

reactive函数(只能用来定义对象和数组的响应式数据且定义的响应式数据是深层次的)

let obj = rective({
    name: "韩梅梅",
    sex: "女",
});

rective函数定义的响应式对象在修改里边的数据时候不需要.value

let obj = rective({
    name: "韩梅梅",
    sex: "女",
});

obj.sex = "不是男";

conputed计算属性

简写(只能读取,不能修改)

let info = reactive({
    name: "韩梅梅",
    age : 18,
});

info.nameAge = computed(() => {
    return `我叫${info.name},今年${info.age}岁了。`;
});

完整写法(能读能写)

let info = reactive({
    name: "韩梅梅",
    age : 18,
});

info.nameAge = computed({
    get(){
        return `我叫${info.name},今年${info.age}岁了。`;
    }
    set(val){
        // val是输入框传递过来的参数
        // 可以进行处理之后向info.name和info.age赋值
        // 响应式数据,赋值之后页面数据会更新
    }
});

 teleport 将html结构移动到指定位置 (to指定元素, 被 teleport 包围的html就移动到该元素下)

<teleport to="body">
    <div>
        <div>我去body了</div>
    </div>
</teleport>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Web Erek

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值