setup 的执行时机比beforeCreate还要早 并且setup里面的this是undefined

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

执行结果:

setup 能接收的参数 (两个参数)

1 props 配置声明且传入了的属性对象

2 context 上下文包含三个 我们经常用到的内容

attrs 没有在props配置中声明的属性对象, 相当于vue2中的 this.$attrs

slots: 传入的插槽内容的对象, 相当于vue2中的 this.$slots

emit: 自定义事件的函数, 相当于vue2中的 this.$emit

props:

根组件中:

<mine msg='你好' :data="1"></mine>

子组件中

<template><div><h2>人的信息</h2><h2>人的姓名:{{person.name}} --{{msg}}</h2><h2>人的年龄:{{person.age}} --{{data}}</h2></div>
</template><script>
import { reactive } from 'vue-demi';
export default {props:['msg','data'],setup(props,context){console.log(props);}
}</script>

执行结果:

可以收到到父组件的传值

attrs

我们不去接收data

props:['msg'],

然后我们去打印查看 attrs

setup(props,context){console.log(context.attrs);
}

结果:

自定义事件:

父组件中:绑定一个hello事件

<template><mine @hello="showHello">
</template><script>
import mine from '@/pages/Mine/mine'
export default {setup() {function showHello(value){alert(`你好 我收到的参数是${value}`)}return {showHello}},};
</script>

子组件中:

<template><div><el-button type="primary" @click="test">触发自定义事件</el-button></div>
</template><script>
import { reactive } from 'vue-demi';
export default {// 声明一下  外部给组件 绑定了一个hello事件emits:['hello'],setup(props,context){// 自定义事件console.log(context.emit);function test(){context.emit('hello','vue3 setup的context')}return {test}}};
</script>

执行结果:

点击按钮触发自定义事件

 插槽

父组件中:

注意:我们给插槽命名的时候 需要使用v-slot命令

<template><mine><!-- 插槽 --><template v-slot:test><span>标签 </span></template></mine>
</template>

mine组件中:

<template><div class="mine">我的页面<slot name="test"></slot></div>
</template>
    setup(props,context){console.log(context.slots);}

执行结果:

Vue3 setup的使用相关推荐

  1. Vue2与Vue3 setup的使用差异与对比

    最近一直在做vue2的技术栈升级,于是心血来潮,就想要不写篇文章总结一下vue2和vue3在使用上的不同吧,于是乎,我们这就开始吧! 首先说明一下,vue3有多种写法,本文使用setup语法糖,不考虑 ...

  2. vue3 setup + ts + vite 项目问题解决:Cannot find module ... or its corresponding type declarations.(ts2307)

    昨日我尝试使用vue3 setup + ts + vite进行vue3项目的实现,遇到此问题: Cannot find module ... or its corresponding type dec ...

  3. Vue3 setup语法糖勾子函数使用简易教程(上)

    Vue3 setup语法糖勾子函数使用简易教程(上) 前几天一个月薪35k的兄弟,给我推了一个人工智能学习网站,看了一段时间挺有意思的.包括语音识别.机器翻译等从基础到实战都有,很详细,分享给大家. ...

  4. vue3 setup 父传子,子传父

    vue3父子组件传值 vue3 setup父子传值 父组件把值传给子组件 举例:父组件: 子组件 父组件给子组件传值: <FatherComponent/> <son-compone ...

  5. VUE3(setup响应式函数系统API)

    Vue3.0提供的一组具有响应式特性的杉树式API,以函数的形式提供 1.reactive reactive()函数接收一个普通对象,返回该普通对象的响应式代理对象 2.ref ref()函数接收一个 ...

  6. vue3 setup写法(语法糖版本)

    vue3.2 版本开始才能使用语法糖! 在 Vue3.0 中变量必须 return 出来, template 中才能使用:而在 Vue3.2 中只需要在 script 标签上加上 setup 属性,无 ...

  7. vue3 setup语法糖事件引用和写法

    setup基础用法 setup是vue3新增的一个属性,默认写法是在代码中用setup方法,然后在setup中return. setup(){const func = () => {//这里写方 ...

  8. vue3+setup写法

    setup函数是 Composition API(组合API)的入口 在setup函数中定义的变量和方法最后都是需要 return 出去的 不然无法再模板中使用 <script>expor ...

  9. vue3 setup语法糖下父组件调用子组件的方法

    vue3下,父组件调用子组件的方法,如果使用了<script setup> 这种写法,那么子组件方法需要采用defineExpose()进行修饰,才能被外界调用.上代码: 1.子组件 _p ...

最新文章

  1. lua中的魔法字符转义问题
  2. 【LeetCode从零单排】No121 Best Time to Buy and Sell Stock
  3. python中urllib.quote出现KeyError
  4. struts2通配符_基于Struts2框架的名片管理系统
  5. 基于JAVA+SpringMVC+Mybatis+MYSQL的在线书城购物网站
  6. 使用Kotlin的Android菜单
  7. 网络对抗技术——密码破解技术
  8. 储存管理系统c语言,C语言-图书管理系统-未做文件储存系统.docx
  9. 3种时间复杂度实现不同类型的无序数组去重
  10. JFrame显示透明图片与动态图片
  11. kodi在电视上播放视频卡顿的解决办法
  12. SAP MM供应商主数据
  13. Java工程师待遇怎么样?
  14. 联发科6758_OPPO新机使用联发科天玑720处理器,整体性能到底怎么样?
  15. 完了,又火一个 。。。
  16. Delphi 2005 失望的尝鲜!
  17. linux - grep命令
  18. 仅键盘洒水还不能证明联想笔记本安全品质
  19. Java 正则检测大写字母
  20. Eclipse SVN插件: Subversive 4.0.4(支持dropins安装)

热门文章

  1. .com和.cn的区别
  2. 2021年阿里菜鸟网络春招实习岗面试分享,简历+面试+面经全套资料!
  3. 【能效管理】变电站综合自动化监控系统在35kV变电站中应用
  4. 淘淘商城简介——淘淘商城
  5. 简单的加减法数学游戏
  6. BH修改大师 V1.43【mfxp.com】
  7. YDOOK: USB 转 TTL 模块 与 ESP8266 WiFi 串口通讯实验 连线实例教程
  8. python教程print_Python入门
  9. miui10 android版本,miui10稳定版
  10. Linux内核实验孟宁,《linux内核分析》实验二:时间片轮转多道程序运行原理