vue3中的setup

news/2024/10/29 5:27:18/

setup

  • 前言
    • setup中的两种返回值
    • setup执行的时机
    • setup的参数
    • 注意点:

前言

setup是vue3中的一个全新的配置项,值为一个函数;

setup是所有CompositionAPI(组合API)的基础,组件中所用到的数据、方法等都需要在setup中进行配置

setup中的两种返回值

  • 返回一个对象,对象中的属性、方法,在模板中均可直接使用
<template><div>{{ sayHello() }}</div><div>{{ name }}</div>
</template><script>export default {name: "App",setup() {// 数据let name = "张三";let age = "18";// 方法function sayHello() {alert(`我叫${name},我${age}岁了,你好啊`);}// 第一种return,返回一个对象return {name,age,sayHello,};},
};
</script>
  • 在vue2的配置中可读取到vue3配置中的属性和方法;在vue3的配置中不能读取vue2配置中的属性和方法
<template><div>{{ name }}</div><!-- <div>{{ sayHello() }}</div> --><div>{{ test2() }}</div>
</template><script>
export default {name: "App",data() {return {sex: "男",};},methods:{sayHello() {alert('你好啊')}},setup() {// 数据let name = "张三";let age = "18";function test2() {console.log(this.sex,'sex');console.log(this.sayHello,'sayHello');}// 第一种return,返回一个对象return {name,age,test2};},
};
</script>
  • 如果vue2和vue3的配置有冲突,则vue3的setup优先
data() {return {sex:'男'}
},
setup() {const sex = ref('女')return {sex}
}

setup执行的时机

在beforeCreate之前执行一次,this是undefined

beforeCreate(){console.log('beforeCreate');
},
setup(){console.log('setup',this);
}

setup的参数

第1个参数:props是一个对象,包含父组件传递给子组件的所有数据;在子组件中使用props进行接收。
第2个参数:context,是一个对象。该属性是props中没有声明接收的所有的对象;如果你使用props去获取值,同时props中你声明了你要获取的值
则:获取的值是undefined

//父组件
<template><Child msg="你好啊" aa="111"></Child>
</template>
<script>
import { ref } from "vue";
import Child from "./Child.vue";
export default {components: { Child },name: "App",setup() {return {};}
};
</script>
//子组件<template><div>{{ msg }}</div>
</template>    
<script>
export default {props:['msg'], // 需要声明一下接受到了,否则会报警告setup(props,context){console.log(props,context,'父传子接收到了');}
}
</script>

注意点:

①、vue3支持向下兼容,vue2中的data、methods配置项在vue3中都能够使用,但是尽量不要将vue3中的配置项和vue2.x配置项混用;

②、vue2.x配置(data、methods、computed等)中可以访问setup中的属性、方法,但是在setup中不能访问vue2.x配置(data、methods、computed等);

③、如果vue2配置与vue3配置存在重名,则以谁在上面谁优先展示;

④、setup不能是一个async函数,因为返回值不再是return的对象,而是promise,模板看不到return对象中的属性;


http://www.ppmy.cn/news/43904.html

相关文章

Zabbix6.0升级到Zabbix6.4

1&#xff1a;现在的版本是6.0.3 2&#xff1a;停止Zabbix Server进程。 systemctl stop zabbix-server 若升级Zabbix proxy版本&#xff0c;需也停止Zabbix proxy服务 。 systemctl stop zabbix-proxy 3&#xff1a;我用的是MariaDB数据库名称是zabbix。 4&#xff1a; 查看…

谈谈你对promise的理解?

谈谈你对promise的理解?一、什么是Promise二、promise的好处三、promise的三种状态三、promise的用法1.promise的实例方法2.promise的对象方法(p1,p2,p3为promise的实例对象)四、总结一、什么是Promise Promise是ES6异步编程的一种解决方案(目前最先进的解决方案是async和awai…

详细了解SQL中delete,drop,truncate的区别和不同

其实总体来说就一句话就可以概况了&#xff0c;当你不再需要该表时&#xff0c; 用 drop&#xff1b;当你仍要保留该表&#xff0c;但要删除所有记录时&#xff0c; 用 truncate&#xff1b;当你要删除部分记录时, 用 delete。 看完这就好详细学习过SQL的家人就已经对他们有啥不…

什么是CCRC信息安全服务资质?

一、什么是CCRC&#xff1f; CCRC就是从前ISCCC的新名&#xff0c;也是就信息安全服务资质&#xff0c;规定了信息安全服务提供者在提供服务时应具备的服务安全通用要求和专业服务能力要求。今天&#xff0c;小编恒标知产就CCRC详细地说一说。二、CCRC的级别 CCRC信息安全服务…

中电金信「财务公司核心系统白皮书」正式发布!

随着数字技术的深度应用&#xff0c;数字化转型正迎来新一轮变革。如何促进企业战略转型&#xff0c;助力企业发展提质增效&#xff0c;以标准化、数字化、精细化支撑企业实现高质量发展&#xff0c;已成为财务公司数字化转型的重要课题。 为推进财务公司数字化转型工作要求&a…

索引的分类

1.唯一索引 给表中某一列设置为了唯一约束(这列不允许出现重复数据)后&#xff0c;数据库会为将这一列设置索引&#xff0c;这个索引叫做唯一索引&#xff08;主键那一列是一个特殊的唯一索引&#xff0c;不仅要满足唯一索引这一列不可以出现重复数据&#xff0c;而且这一列还…

线性代数代码实现(七)求解线性方程组(C++)

前言&#xff1a; 上次博客&#xff0c;我写了一篇关于定义矩阵除法并且代码的文章。矩阵除法或许用处不大&#xff0c;不过在那一篇文章中&#xff0c;我认为比较好的一点是告诉了大家一种计算方法&#xff0c;即&#xff1a;若矩阵 已知且可逆&#xff0c;矩阵 已知&#x…

即时通讯技术文集(第12期):网络保活、心跳机制等文章汇总 [共23篇]

为了更好地分类阅读52im.net 总计1000多篇精编文章&#xff0c;我将在每周三推送新的一期技术文集&#xff0c;本次是第12 期。 [- 1 -] 应用保活终极总结(一)&#xff1a;Android6.0以下的双进程守护保活实践 [链接] http://www.52im.net/thread-1135-1-1.html [摘要] 因为A…