vue3拉开序幕的setup

  1. 理解:Vue3.0中一个新的配置项,值为一个函数。

  2. setup是所有Composition API(组合API)“ 表演的舞台 ”

  3. 组件中所用到的:数据、方法等等,均要配置在setup中。

  4. setup函数的两种返回值:

    1. 若返回一个对象,则对象中的属性、方法, 在模板中均可以直接使用。(重点关注!)

    2. 若返回一个渲染函数:则可以自定义渲染内容。(了解)

  5. 注意点:

    1. 尽量不要与Vue2.x配置混用

      • Vue2.x配置(data、methos、computed...)中可以访问到setup中的属性、方法。

      • 但在setup中不能访问到Vue2.x配置(data、methos、computed...)。

      • 如果有重名, setup优先。

    2. setup不能是一个async函数,因为返回值不再是return的对象, 而是promise, 模板看不到return对象中的属性。(后期也可以返回一个Promise实例,但需要Suspense和异步组件的配合)

vue3中的setup函数的2种返回值用法

第一种返回值:返回一个对象,对象中的属性和方法在模板中可以直接使用

代码:

<template><div class="hello"><h1>一个人的信息</h1><h2>姓名:{{name}}</h2><h2>年龄:{{age}}</h2><button @click="sayHello">说话</button></div>
</template><script>
export default {name: 'HelloWorld',props: {msg: String},setup(){let name='张三'let age = 18function sayHello(){alert(`我叫${name},我${age}岁了,你好啊!`)}return{name,age,sayHello}}
}
</script><!-- Add "scoped" attribute to limit CSS to this component only -->
<style scoped>
</style>

第2种返回值:返回一个渲染函数,可以自定义渲染内容(用得不多,了解即可)

代码:

<template><div class="hello"><h1>一个人的信息</h1><h2>姓名:{{name}}</h2><h2>年龄:{{age}}</h2><button @click="sayHello">说话</button></div>
</template><script>
import { h } from 'vue'export default {name: 'HelloWorld',props: {msg: String},setup(){// let name='张三'// let age = 18// function sayHello(){//   alert(`我叫${name},我${age}岁了,你好啊!`)// }// return{//   name,//   age,//   sayHello// }return ()=> h('h1','尚硅谷')}
}
</script><!-- Add "scoped" attribute to limit CSS to this component only -->
<style scoped>
</style>

结论:

使用了渲染函数之后。页面上的其他信息就被覆盖了。只显示了渲染函数里面的内容。

以上的例子只是为了演示。

代码:

<template><div class="hello"><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></div>
</template><script>
// import { h } from 'vue'export default {name: 'a1setup',props: {msg: String},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)}},setup() {let name = '张三'let age = 18let a = 200function sayHello() {alert(`我叫${name},我${age}岁了,你好啊!`)}function test2() {console.log(name)console.log(age)console.log(sayHello)console.log(this.sex)console.log(this.sayWelcome)}return {name,age,sayHello,test2,a}// return ()=> h('h1','尚硅谷')}
}
</script><!-- Add "scoped" attribute to limit CSS to this component only -->
<style scoped>
</style>

前3个按钮点击后结果都是正常的。第4个按钮获取不到某些值

vue3组合式Composition API之setup函数的具体用法相关推荐

  1. Vue3.0 Composition API与Vue2.x 使用的 Options API

    Vue3.0 所采用的 Composition API 与 Vue2.x 使用的 Options API 有什么不同 开始之前 Composition API 可以说是Vue3最大的特点,那么为什么要 ...

  2. vue3.0 - Composition API

    一. 介绍 >使用传统的option配置方法写组件的时候问题,随着业务复杂度越来越高,代码量会不断的加大:由于相关业务的代码需要遵循option的配置写到特定的区域,导致后续维护非常的复杂,同时 ...

  3. vue3.0 Composition API 上手初体验 使用 vue-router 构建多页面应用

    vue3.0 Composition API 上手初体验 使用 vue-router 构建多页面应用 前两讲,我们已经顺利的使用 vue3.0 将项目跑起来了.但是实在是过于简陋,目前我们几乎不可能开 ...

  4. 探秘 Vue3.0 - Composition API 在真实业务中的尝鲜姿势

    前言 2019年2月6号,React 发布 16.8.0 版本,新增 Hooks 特性.随即,Vue 在 2019 的各大 JSConf 中也宣告了 Vue3.0 最重要的 RFC,即 Functio ...

  5. 为什么vue3 需要 Composition API?

    文章目录 什么是 Composition API? 什么是可组合? Composables 和 Mixin 解决的类似问题 组合物 vs Mixin 数据/方法来源的清晰度 命名冲突 来自组件的变异模 ...

  6. vue3学习笔记 Composition API setup

    一.Composition API优势 相对于vue2的option API Vue3的Composition API设计更有优势 Composition(组合式)Api 功能分组 Compositi ...

  7. vue3组合式api

    文章目录 组合式API介绍 什么是组合式 API? 为什么要有组合式 API? 更好的逻辑复用 更灵活的代码组织 Option Api Option Api的缺陷 Composition Api 更好 ...

  8. Vue3 -- 组合式API

    组合式API 组合式api(Composition API)算是vue3对我们开发者来说非常有价值的一个api更新,我们先不关注具体语法,先对它有一个大的感知 1. composition vs op ...

  9. 简明扼要聊聊 Vue3.0 的 Composition API 是啥东东!

    对于没太了解 Vue3.0 的同学,在看到 Composition API 时,除了看起来会有一个"高大上"的感觉,可能更多的是有点懵逼,心中不免泛起一堆疑惑,这到底是何方神圣?干 ...

最新文章

  1. 行星齿轮设计手册_合理选用行星齿轮传动装置的侧隙
  2. tomcat安全机制j_security_check(简单版)
  3. [最新下载] 【火车票订票外挂】Go-Home–12306.cn 网上火车票自动订票程序
  4. SSH连接linux时,长时间不操作就断开的解决方案
  5. linux make乱码,linux乱码
  6. 1087 有多少不同的值 (20分)
  7. VB利用资源文件进行工作
  8. 货物贸易外汇监测系统 企业版_企业能耗在线监测系统介绍
  9. 微软软件开发技术二十年回顾(MFC篇)
  10. 项目中的每个层的理念是什么?
  11. Wireless基本概念
  12. Linux I2C调试工具i2c-tools,i2ctransfer支持16位寄存器地址
  13. raspberry pi4B ncnn cpu vulkan benchmark
  14. 华为销售用一封邮件撬走阿里云千万级客户罗振宇的《得到》
  15. 功率因数 matlab,基于MATLAB的有源功率因数校正器设计
  16. OutLook使用技巧
  17. 爬虫小练习:堆糖图片抓取--爬虫正式学习day1
  18. 双活数据中心解决方案
  19. stats | 概率分布与随机数生成(二)——均匀分布、指数分布、正态分布、对数正态分布、卡方分布、t分布、F分布和增长分布
  20. sql语句的增删改操作附加代码

热门文章

  1. bobo-browse
  2. android studio百度地图教程,Android studio百度地图SDK开发 2020最新超详细的Android 百度地图开发讲解(4) 路线规划之起始点地址输入实现规划...
  3. java8 list 转Map的各种写法
  4. 创建react项目 Linux,idea2018 快速搭建react项目指南
  5. android recovery中文下载地址,7-Data Android Recovery(安卓手机数据恢复系统)
  6. lvds传输距离标准_信号链基础知识(第 37 部分):LVDS——低压差分信号传输
  7. Java正则表达式之“\\“理解
  8. 余弦定理实现新闻自动分类算法
  9. Chapter15 Principles of Metabolic Regulation
  10. Linux服务器磁盘扩容步骤