Vue3 setup的使用
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的使用相关推荐
- Vue2与Vue3 setup的使用差异与对比
最近一直在做vue2的技术栈升级,于是心血来潮,就想要不写篇文章总结一下vue2和vue3在使用上的不同吧,于是乎,我们这就开始吧! 首先说明一下,vue3有多种写法,本文使用setup语法糖,不考虑 ...
- 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 ...
- Vue3 setup语法糖勾子函数使用简易教程(上)
Vue3 setup语法糖勾子函数使用简易教程(上) 前几天一个月薪35k的兄弟,给我推了一个人工智能学习网站,看了一段时间挺有意思的.包括语音识别.机器翻译等从基础到实战都有,很详细,分享给大家. ...
- vue3 setup 父传子,子传父
vue3父子组件传值 vue3 setup父子传值 父组件把值传给子组件 举例:父组件: 子组件 父组件给子组件传值: <FatherComponent/> <son-compone ...
- VUE3(setup响应式函数系统API)
Vue3.0提供的一组具有响应式特性的杉树式API,以函数的形式提供 1.reactive reactive()函数接收一个普通对象,返回该普通对象的响应式代理对象 2.ref ref()函数接收一个 ...
- vue3 setup写法(语法糖版本)
vue3.2 版本开始才能使用语法糖! 在 Vue3.0 中变量必须 return 出来, template 中才能使用:而在 Vue3.2 中只需要在 script 标签上加上 setup 属性,无 ...
- vue3 setup语法糖事件引用和写法
setup基础用法 setup是vue3新增的一个属性,默认写法是在代码中用setup方法,然后在setup中return. setup(){const func = () => {//这里写方 ...
- vue3+setup写法
setup函数是 Composition API(组合API)的入口 在setup函数中定义的变量和方法最后都是需要 return 出去的 不然无法再模板中使用 <script>expor ...
- vue3 setup语法糖下父组件调用子组件的方法
vue3下,父组件调用子组件的方法,如果使用了<script setup> 这种写法,那么子组件方法需要采用defineExpose()进行修饰,才能被外界调用.上代码: 1.子组件 _p ...
最新文章
- lua中的魔法字符转义问题
- 【LeetCode从零单排】No121	Best Time to Buy and Sell Stock
- python中urllib.quote出现KeyError
- struts2通配符_基于Struts2框架的名片管理系统
- 基于JAVA+SpringMVC+Mybatis+MYSQL的在线书城购物网站
- 使用Kotlin的Android菜单
- 网络对抗技术——密码破解技术
- 储存管理系统c语言,C语言-图书管理系统-未做文件储存系统.docx
- 3种时间复杂度实现不同类型的无序数组去重
- JFrame显示透明图片与动态图片
- kodi在电视上播放视频卡顿的解决办法
- SAP MM供应商主数据
- Java工程师待遇怎么样?
- 联发科6758_OPPO新机使用联发科天玑720处理器,整体性能到底怎么样?
- 完了,又火一个 。。。
- Delphi 2005 失望的尝鲜!
- linux - grep命令
- 仅键盘洒水还不能证明联想笔记本安全品质
- Java 正则检测大写字母
- Eclipse SVN插件: Subversive 4.0.4(支持dropins安装)
热门文章
- .com和.cn的区别
- 2021年阿里菜鸟网络春招实习岗面试分享,简历+面试+面经全套资料!
- 【能效管理】变电站综合自动化监控系统在35kV变电站中应用
- 淘淘商城简介——淘淘商城
- 简单的加减法数学游戏
- BH修改大师 V1.43【mfxp.com】
- YDOOK: USB 转 TTL 模块 与 ESP8266 WiFi 串口通讯实验 连线实例教程
- python教程print_Python入门
- miui10 android版本,miui10稳定版
- Linux内核实验孟宁,《linux内核分析》实验二:时间片轮转多道程序运行原理