vue中的 $slot 获取插槽的节点实例
vue 中的 $slot
以前一直不知到这个东西,后来发现 vue api 中 藏着很多的 很神奇的 api,比如这个
具名插槽很好理解,但是那个 default 就有点难了,
写了一个炒鸡简单的 demo
father:
<template> <div> <button @click="getSlot">getSlot</button> <try ref="try"> <div class="hello1">hello1</div> <div class="hello2">hello2</div> <div class="hello3">hello3</div> </try> <button @click="getArc">getArc</button> </div> </template> <script> import try from './try' export default { components: { try }, methods: { getSlot () { this.$refs.try.getSlot() } } } </script>
try.vue
<template> <div> <h2>我是子组件 的 标题</h2> <slot> 只有在没有内容分发的时候我才会出现 </slot> </div> </template> <script> export default { methods: { getSlot () { console.log(this.$slots) } } } </script>
点击了getSlot 之后的输出
可以看到 default ,
里面有插入的 三个 标签和 三个标签之间的 两个 空格,就有 5 个 了
通过这个就能很轻易的 拿到 父组件 通过插槽插入 子组件的 标签了
this.slotChildren = [] for (let i = 0; i< this.$slots.default.length; i++) { if (that.$slots.default[i].elm.nodeType !== 3) { that.slotChildren.push(that.$slots.default[i]) // 获得 那些 插入的 按钮 } }
以上这篇vue中的 $slot 获取插槽的节点实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。
相关推荐
-
Vue作用域插槽slot-scope实例代码
vue中的插槽有三种:单个插槽.具名插槽.作用域插槽,这个在官网上能看到 (https://cn.vuejs.org/v2/guide/components.html#单个插槽) 作用域插槽简单来说就是父组件只管显示样式,数据由子组件来提供.比如上面的代码,el-table-column内的template是传递给其内部solt的显示内容,但是scope的值是由el-table-column内部solt绑定的数据返回的.这个数据具体是什么由el-table-column中指定,类似: <slot
-
详解Vue组件插槽的使用以及调用组件内的方法
组件传参 通过给组件传递参数, 可以让组件变得更加可扩展, 组件内使用props接收参数 export default { props: ['options'], data(){ return {} } } 但是这个方法有局限性, 例如我写了一个对话框组件, 对话框的内容是自定义的 如果我只是显示文字的话, 我可以简单的将字符串传进去props: ['message'] 但是如果需要在其中添加一个按钮的话, 这种方法就显得很笨重了, 所以我们用另一种办法 插槽 slot 插槽 slot的使用就像
-
vue插槽slot的理解和使用方法
前言 Vue的slot插槽,可以从字面意思来了解用途,占用占坑的意思,既然是占坑肯定是先占坑后面有其他具体的内容来替换代替.根据slot的应用场景可以分为匿名slot和具名slot. 一.个人理解及插槽的使用场景 刚开始看教程我的疑惑是为什么要用插槽,它的使用场景是什么,很多解释都是"父组件向子组件传递dom时会用到插槽",这并不能很好的解决我的疑惑.既然你用了子组件,你为什么要给她传一些dom,直接去定义复用的子组件不就好了.后来想想觉得一个复用的组件在不同的地方只有些许变化,如果去
-
vue中slot(插槽)的介绍与使用
什么是插槽? 插槽(Slot)是Vue提出来的一个概念,正如名字一样,插槽用于决定将所携带的内容,插入到指定的某个位置,从而使模板分块,具有模块化的特质和更大的重用性.插槽显不显示.怎样显示是由父组件来控制的,而插槽在哪里显示就由子组件来进行控制 Vue slot 原理 在web-components中有slot的概念,https://developers.google.com/web/fundamentals/web-components/shadowdom. <slot> 元素 Shado
-
vue中的 $slot 获取插槽的节点实例
vue 中的 $slot 以前一直不知到这个东西,后来发现 vue api 中 藏着很多的 很神奇的 api,比如这个 具名插槽很好理解,但是那个 default 就有点难了, 写了一个炒鸡简单的 demo father: <template> <div> <button @click="getSlot">getSlot</button> <try ref="try"> <div class=&quo
-
Vue中的slot使用插槽分发内容的方法
本文题材来自:https://cn.vuejs.org/v2/guide/components.html#%E4%BD%BF%E7%94%A8%E6%8F%92%E6%A7%BD%E5%88%86%E5%8F%91%E5%86%85%E5%AE%B9 <slot></slot>标签,简单来说就是占位符,它会帮你占好位置,等你需要的时候直接将html传入,它会帮你显示出来. 也有人说:props可以将数据从父组件传入子组件,slot可以将html从父组件传入子组件.那么如何实现呢?
-
深入理解vue中的slot与slot-scope
写在前面 vue中关于插槽的文档说明很短,语言又写的很凝练,再加上其和methods,data,computed等常用选项使用频率.使用先后上的差别,这就有可能造成初次接触插槽的开发者容易产生"算了吧,回头再学,反正已经可以写基础组件了",于是就关闭了vue说明文档. 实际上,插槽的概念很简单,下面通过分三部分来讲.这个部分也是按照vue说明文档的顺序来写的. 进入三部分之前,先让还没接触过插槽的同学对什么是插槽有一个简单的概念:插槽,也就是slot,是组件的一块HTML模板,这块模板
-
vue中设置、获取、删除cookie的方法
1.在src目录下的access下新建一个cookie.js, 内容如下: export function setCookie(c_name,value,expire) { var date=new Date() date.setSeconds(date.getSeconds()+expire) document.cookie=c_name+ "="+escape(value)+"; expires="+date.toGMTString() //console.lo
-
关于在vue 中使用百度ueEditor编辑器的方法实例代码
1. 安装 npm i vue-ueditor --save-dev 2.从nodemodels 取出ueditor1_4_3_3 这整个目录,放入vue 的 static 目录 3.配置 ueditor.config.js 的 21行代码 更改路径 var URL = '/static/ueditor1_4_3_3/' || getUEBasePath(); (1) serverUrl: URL + 'php/controller.php', 这里是你配置的上传内容的
-
vue中4个自定义指令讲解及实例用法
四个实用的vue自定义指令 1.v-drag 需求:鼠标拖动元素 思路: 元素偏移量 = 鼠标滑动后的坐标 - 鼠标初始点击元素时的坐标 + 初始点击时元素距离可视区域的top.left. 将可视区域作为边界,限制在可视区域里面拖拽.[相关推荐:<vue.js教程>] 代码: Vue.directive('drag', { inserted(el) { let header = el.querySelector('.dialog_header') header.style.cssText +=
-
Java中BufferedReader类获取输入输入字符串实例
使用Scanner来取得使用者的输入很方便,但是它以空白来区隔每一个输入字符串,在某些时候并不适用,因为使用者可能输入一个字符串,中间会包括空白字元,而您希望取得完整的字符串. 您可以使用BufferedReader类别,它是java.io包中所提供的一个类,所以使用这个类时必须先import java.io包:使用BufferedReader对象的readLine()方法必须处理IOException异常(exception),异常处理机制是Java提供给程序设计人员捕捉程序中可能发生的错误所
-
对vue中v-on绑定自定事件的实例讲解
关于官网vue中v-on绑定自定义事件的个人理解 对官网实例进行了一些修改,如下图: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>v-on绑定自定义事件</title> <script src="vue.js"></script> </head>
-
在vue中v-bind使用三目运算符绑定class的实例
如图所示: 通过动态的切换isOk就可以达到切换class的效果,isOk可以为一个表达式如num>1,如果data中num大于1,则显示classA,否则显示classB 以上这篇在vue中v-bind使用三目运算符绑定class的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们.
-
对vue中的事件穿透与禁止穿透实例详解
在开发过程中经常遇到的一个场景,就是,页面弹窗,弹窗上有一个确定或者关闭按钮,这时,如果下方有一个按钮,那你点击弹窗的时候,也会触发弹窗下层的按钮事件,vue提供的解决方法就是直接在click.stop //阻止单击事件继续传播 <a v-on:click.stop="doThis"></a> js的解决办法是,直接在事件的方法中添加event.stopPropagation() //html <button>关闭</button> //
随机推荐
- jquery鼠标悬停导航下划线滑出效果
- SyntaxHighlighter配合CKEditor插件轻松打造代码语法着色
- Coldfusion MX技巧精华收集(1)第1/5页
- javascript RegExp 使用说明
- 腾讯云Ubuntu14.04安装Tomcat8教程
- Tomcat服务器图片地址中文路径问题解决办法
- JAVA_基本LDAP操作实例
- 详谈Spring对IOC的理解(推荐篇)
- .NET中的异常和异常处理用法分析
- Android应用创建桌面快捷方式代码
- 三个不常见的 HTML5 实用新特性简介
- js创建数组的简单方法
- java stringbuffer的用法示例
- javascript模拟地球旋转效果代码实例
- bootstrap table 表格中增加下拉菜单末行出现滚动条的快速解决方法
- Kotlin 编程三分钟入门
- 探讨Object转为String的几种简易形式详解
- Android中PopupMenu组件的使用实例
- Python编程之基于概率论的分类方法:朴素贝叶斯
- Android仿正点闹钟时间齿轮滑动效果