理解 Vue3.0 里的 setup 函数

  • 理解:Vue3.0中一个新的配置项,值为一个函数。
  • setup是所有Composition API(组合API)“ 表演的舞台 ”
  • 组件中所用到的:数据、方法等等,均要配置在setup中。
  • setup函数的两种返回值:
    • 若返回一个对象,则对象中的属性、方法, 在模板中均可以直接使用。(重点关注!)
    • 若返回一个渲染函数:则可以自定义渲染内容。(了解)
  • 注意点:
    • 尽量不要与Vue2.x配置混用
      • Vue2.x配置(data、methos、computed...)中可以访问到setup中的属性、方法。
      • 但在setup中不能访问到Vue2.x配置(data、methos、computed...)。
      • 如果有重名, setup优先。
    • setup不能是一个async函数,因为返回值不再是return的对象, 而是promise, 模板看不到return对象中的属性。(后期也可以返回一个Promise实例,但需要Suspense和异步组件的配合)
<template>
	<h1>一个人的信息</h1>
	<h2>姓名:{{name}}</h2>
	<h2>年龄:{{age}}</h2>
	<h2>性别:{{sex}}</h2>
	<h2>a的值是:{{a}}</h2>
	<button @click="sayHello">说话(Vue3所配置的——sayHello)</button>
	<br>
	<br>
	<button @click="sayWelcome">说话(Vue2所配置的——sayWelcome)</button>
	<br>
	<br>
	<button @click="test1">测试一下在Vue2的配置中去读取Vue3中的数据、方法</button>
	<br>
	<br>
	<button @click="test2">测试一下在Vue3的setup配置中去读取Vue2中的数据、方法</button>

</template>

<script>
	// import {h} from 'vue'
	export default {
		name: 'App',


        // ===================== 此处是vue2写法,为了测试vue3的属性或方法能否在此处获取到
		data() {
			return {
				sex:'男',
				a:100
			}
		},
		methods: {
			sayWelcome(){
				alert('欢迎来到尚硅谷学习')
			},
			test1(){
				console.log(this.sex)
				console.log(this.name)
				console.log(this.age)
				console.log(this.sayHello)
			}
		},
        // ===================== 此处是vue2写法,为了测试vue3的属性或方法能否在此处获取到


		
		async setup(){
			//数据
			let name = '张三'
			let age = 18
			let a = 200

			//方法
			function sayHello(){
				alert(`我叫${name},我${age}岁了,你好啊!`)
			}
			function test2(){
				console.log(name)
				console.log(age)
				console.log(sayHello)

                // 测试能否获取到 vue2 写法中的属性或方法
				console.log(this.sex)
				console.log(this.sayWelcome)
			}

			//返回一个对象(常用)(需要返回页面才可以渲染)
			return {
				name,
				age,
				sayHello,
				test2,
				a
			}

			//返回一个函数(渲染函数)(这里页面会直接输出”尚硅谷“三字)
			// return ()=> h('h1','尚硅谷')
		}
	}
</script>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值