Vue中slot内容分发】的更多相关文章

<slot>元素是一个内容分发API,使用多个内容插槽时可指定name属性 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <!-- <link rel="stylesheet" href="fonts/iconfont.css" /> --> <…
有时候我们的vue组件需要复制使用者传递的内容. 比如我们工程里面的轮播组件需要使用复制的slot来达到循环滚动的效果 使用者关注轮播内容的静态效果,组件负责让其滚动起来 组件: <div class="horse-lamp"> <div class="lamp"> <slot name="lamps"></slot> </div> <div class="lamp&qu…
vue的内容分发非常适合"固定部分+动态部分"的组件的场景,固定部分可以是结构固定,也可以是逻辑固定,比如下拉loading,下拉loading只是中间内容是动态的,而拉到底部都会触发拉取更多内容的操作,因此我们可以把下拉loading做成一个有slot的插件. 单个Slot 在children这个标签里面放Dom,Vue不会理你,也就是不会显示,类似React:this.props.children. //父 <children> <span>12345<…
当需要让组件组合使用,混合父组件的内容和子组件的模板的时候,就会用到slot.这个过程就叫内容分发. 最为常用的是两种slot:一种是匿名slot, 一种是具名slot. 匿名 很好理解: 就是默认,没有名字. 具名: 就是slot 有了name属性,有了名字. 下面来个综合的小demo: 父组件: <div class="testslot"> 我是TestSlot:父组件 <slot1> <p style="color:red">…
插槽就是vue实现的一套内容分发的API,将插槽元素作为承载分发内容的出口. 也就是说在组件模板中默认占用一个位置,当使用组件标签时候,组件标签的内容就会自动替换掉内容 slot中可以设置一些默认的内容,如果传递了内容则会替换掉,如果没有名字的标签会默认放到default中. 例如:没有插槽时候,组件内发布的一些内容是不起作用的,加了插槽就起作用了 <div id="app"> <modal><h2>是否删除</h2></modal…
vue实现了一套内容分发的API,这套API基于当前的web components规范草案,将<slot>元素作为承载分发内容的出口. 在前面的父子组件中,我们提到过,在vue中,组件实例的作用域是孤立的,默认情况下,父子组件的数据是不能共享的.所以子组件的内容应当写在子组件里面,父组件的内容应该写在父组件里面,下面的这种情况.父组件的内容将会被默认丢弃. <!DOCTYPE html> <html lang="en"> <head> &…
子组件 <template> <div class="slotcontent"> <ul> <!--<slot></slot>--> <li v-for="item in items">{{item.text}}</li> </ul> </div> </template> <script> export default{ d…
vue中关于插槽的文档说明很短,语言又写的很凝练,再加上其和methods,data,computed等常用选项使用频率.使用先后上的差别,这就有可能造成初次接触插槽的开发者容易产生“算了吧,回头再学,反正已经可以写基础组件了”,于是就关闭了vue说明文档.分享一下Slot的基本知识和在开发时遇到的一个很好用的问题. 插槽,也就是slot,是组件的一块HTML模板,这块模板显示不显示.以及怎样显示由父组件来决定.由于插槽是一块模板,所以,对于任何一个组件,从模板种类的角度来分,其实都可以分为非插…
前提:父组件模板的内容在父组件作用域内编译:子组件模板的内容在子组件作用域内编译.被分发的内容会在父作用域内编译. 一.单个插槽 // 子组件模板 child-component <div> <h2>我是子组件的标题</h2> <slot> 只有在没有要分发的内容时才会显示. </slot> </div> // 父组件模板: // 父组件模板中的子组件child-component中的内容渲染到slot插槽中, // 若插槽中原有默认…
①概述: 简单来说,假如父组件需要在子组件内放一些DOM,那么这些DOM是显示.不显示.在哪个地方显示.如何显示,就是slot分发负责的活. ②默认情况下 父组件在子组件内套的内容,是不显示的. 例如代码: <div id="box"> <aaa> <span>text是否显示</span> </aaa> <template id="tpl"> <p>我是标签</p> &…