代码部署后可能存在的BUG没法实时知道,事后为了解决这些BUG,花了大量的时间进行log 调试,这边顺便给大家推荐一个好用的BUG监控工具 Fundebug 。
我们知道使用作用域插槽可以将数据传递到插槽中,但是如何从插槽传回来呢?
将一个方法传递到我们的插槽中,然后在插槽中调用该方法 。我信无法发出事件,因为插槽与父组件共享相同的上下文(或作用域) 。
// Parent.vue<template> <Child> <template #default="{ clicked }"> <button @click="clicked"> Click this button </button> </template> </Child></template>
// Child.vue<template> <div> <!-- 将“handleClick” 作为 “clicked” 传递到我们的 slot --> <slot :clicked="handleClick" /> </div></template>
在本文中,我们将介绍其工作原理,以及:
- 从插槽到父级的 emit
- 当一个槽与父组件共享作用域时意味着什么
- 从插槽到祖父组件的 emit
- 更深入地了解如何使用方法从插槽通讯回来
// Parent.vue<template> <Child> <button @click=""> Click this button </button> </Child></template>
我们在 Child 组件的插槽内有一个button。单击该按钮时,我们要在Parent 组件内部调用一个方法 。如果 button 不在插槽中,而是直接在Parent组件的子组件中,则我们可以访问该组件上的方法:
// Parent.vue<template> <button @click="handleClick"> Click this button </button></template>
当该 button 组件位于插槽内时,也是如此:/ Parent.vue<template> <Child> <button @click="handleClick"> Click this button </button> </Child></template>
之所以可行,是因为该插槽与 Parent 组件共享相同的作用域 。插槽和模板作用域模板作用域:模板内部的所有内容都可以访问组件上定义的所有内容 。
这包括所有元素,所有插槽和所有作用域插槽 。
因此,无论该按钮在模板中位于何处,都可以访问handleClick方法 。
乍一看,这可能有点奇怪,这也是为什么插槽很难理解的原因之一 。插槽最终渲染为Child 组件的子组件,但它不与Child 组件共享作用域 。相反,它充当Parent 组件的子组件 。
插槽向祖父组件发送数据如果要从插槽把数据发送到祖父组件,常规的方式是使用的$emit方法:
// Parent.vue<template> <Child> <button @click="$emit('click')"> Click this button </button> </Child></template>
因为该插槽与Parent 组件共享相同的模板作用域,所以在此处调用$emit将从Parent组件发出事件 。从插槽发回子组件与Child 组件通讯又如何呢?
我们知道如何将数据从子节点传递到槽中
// Child.vue<template> <div> <slot :data=https://www.isolves.com/it/cxkf/bk/2020-08-10/"data" />
// Parent.vue<template> <Child> <template #default="{ data }"> {{ data }} </template> </Child></template>
除了传递数据,我们还可以将方法传递到作用域插槽中 。如果我们以正确的方式连接这些方法,则可以使用它来与Child组件通信:// Parent.vue<template> <Child> <template #default="{ clicked }"> <button @click="clicked"> Click this button </button> </template> </Child></template>
推荐阅读
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Apollo配置中心管理后台的详解
- 木星是气态巨行星,也是太阳系中最大的 矮行星是围绕大行星运动的天体吗
- HEX文件格式介绍
- 黑茶加陈皮的功效,香苏茶具有解毒祛暑理气化淤温胃和中的功效
- 如何开发API,这样一份完整的API开发指南足够了
- 存在外星人的有力证据 宇宙中外星人真的存在吗?
- 外星人就在你身边 外星人隐藏在人类中间
- 腾讯算法:判断一个数是否在40亿个整数中?最后附java代码
- |背景调查,招聘选拔人才的关键环节,如何系统策划与高效实施?
- 经典|?40句正能量电影台词,在职场、爱情中迷失时,点亮我们前方的路