Vu3 setup 函数的用法、作用

前言

在讲解 setup 之前我想跟大家说一下目前 Vue 有两种编程术语:

  • 选项式 API (Option API)编程·
  • 组合式 API (Compotion API)编程

在 Vue2 中,我们平时写代码是根据 Vue 实例提供的属性(比如 data / method / mounted / actived ...)来写的, 这种就叫做 选项式 API,而在 Vue3 中新增了一个 setup 函数,我们在这个 setup 函数里面写代码就叫做 组合式 API

另外,Vue3 也支持 Vue2 语法,即你可以混合使用选项式 API / 组合式 API

下面我们开始进入正题。

Setup 简单用法

<template>
  <div>{
    
    {
    
     user.greet }}, {
    
    {
    
     user.name }}</div>
  <button @click="getUserName"> Get </button>
</template>
<script>
// 引入相关属性供 setup 使用
import {
    
     onMounted, reactive } from 'vue'
export default {
    
    
	setup() {
    
    
		// 定义数据 === data() {return { user: {greet ...} })
	    const user = reactive({
    
    
	      greet: 'Hello',
	      name: 'Tony'
	    })
	    // 定义函数 === method: { getUserName() {} }
	    const getUserName = () => {
    
    
			alert(user.name)
		}
		// 定义生命周期函数 === mounted() {} 
		onMounted(() => {
    
    
		})
		// ...
		
		// template 模板要想访问数据和函数就得 return 出去。	
	    return {
    
    
	      user,
	      getUserName 
	    }
  	}
}
</script>

在这里插入图片描述
很简单对不对,有读者或新手可能注意到了,定义 user 数据用到了 reactive 函数,此函数是为了让数据后续的更改操作能够响应式更新,你可以理解为 Vue2 的data 为我们自带响应式,而在 setup 里头如果不用 reactive 就会失去响应式。

以上只是简单用法,关于 setup 里面有多少种语法可以使用官方已经足够详细了,这里笔者不再做阐述,我们只需关心 setup
好处
封装能力、灵活性更强悍,比如我们可以把 setup 里头的代码封装起来放到 js 文件里去,给需要用到的组件引入进来即可,节省重复代码,大大提升效率。

缺陷
Vue3 新增的这个 setup 函数笔者认为更多的为了提高编程的灵活性,适用于对代码管理层面有要求的人,但就是因为太灵活了,所以官方说明了“”对于新手来讲最大的缺陷就是容易造成写出面条式代码” PS: 就是一气呵成的那种!

结尾

记住, vue3 新特性就是专门围绕在 setup 里面写代码
看完本篇后,笔者建议你按照顺序阅读下一篇文章:
Vue3 理解 ref 和 reactive 的用法、区别
按照顺序阅读,同时这也是 vue3 日常所使用的,相信等你全部看完后对 setup 和相关语法有一定的认识。

猜你喜欢

转载自blog.csdn.net/cookcyq__/article/details/121618801