VUE3用过的都说好,常用知识点。

104 阅读1分钟

script setup 是个啥?

它是 Vue3 的一个新语法糖,setUp从生命周期上来讲,等于beforeCreate和created,所以composition API是没有beforeCreate和created生命周期。在 setup 中。所有 ES 模块导出都是暴露给上下文的值,并包含在 setup() 返回对象中。相对于之前的写法,使用后,语法也变得更简单。

使用方式极其简单,仅需要在 script 标签加上 setup 关键字即可。

自动注册组件

在 script setup 中,引入的组件可以直接使用,无需再通过components进行注册,并且无法指定当前组件的名字,它会自动以文件名为主,也就是不用再写name属性了。

属性和事件

  • defineProps
    1. defineProps 是vue3提供的方法,不需要引入可以直接使用,用于子组件接收父组件传递的参数,且只读不可更改.
  • defineEmits
    1. defineEmits 属性:用于创建自定义事件,接收子组件传递过来的数据

代码实列:


const props defineProps({
    name: String,
    age: Number
})
const emit defineEmits(['change','delete'])
// js 中使用
function onDelete(){
    emit('delete''参数')
}
// template 中使用
<button @click="$emit('change', '参数')"></button>

defineExpose API

传统的写法,我们可以在父组件中,通过 ref 实例的方式去访问子组件的内容,但在 script setup 中,该方法就不能用了,setup 相当于是一个闭包,除了内部的 template模板,谁都不能访问内部的数据和方法。

如果需要对外暴露 setup 中的数据和方法,需要使用 defineExpose API。示例:


	import { defineExpose } from 'vue'
	const a = 1
	const b = 2
	defineExpose({
	    a
	})