vue的slot

  1.明确一点:分发内容是在父作用域内编译;

  2.slot作为备用内容的条件:宿主元素为空且父元素没有要分发的内容。

  3.具名slot:<slot name="XXX">    对应    父组件写在子组件标签内的 <tag slot="XXX">;其他不具名的内容分发给默认slot,没有默认slot则丢弃。

  4.作用域插槽,本质上就是一个具名slot,不过绑定的是父作用域中的<template scope=‘props‘>,子组件中的slot可以绑定数据,template能从props中获取这些数据并对内容进行渲染。编译后的结果是slot替换成template中的内容。

时间: 2024-10-10 04:41:20

vue的slot的相关文章

Vue 之 slot(插槽)

前言: vue中关于插槽的文档说明很短,语言又写的很凝练,再加上其和methods,data,computed等常用选项在使用频率.使用先后上的差别,这就有可能造成初次接触插槽的开发者容易产生“算了吧,回头再学,反正已经可以写基础组件了”的想法,于是就关闭了vue的说明文档. 实际上,插槽的概念很简单,下面通过分三部分来讲.这三部分也是按照vue说明文档的顺序来写的. 进入这三部分之前,先让还没接触过插槽的同学对什么是插槽有一个简单的概念:插槽,也就是slot,是组件的一块HTML模板,这块模板

vue 插槽slot

本文是对官网内容的整理 https://cn.vuejs.org/v2/guide/components.html#编译作用域 在使用组件时,我们常常要像这样组合它们: <app> <app-header></app-header> <app-footer></app-footer> </app> 注意两点: <app> 组件不知道它会收到什么内容.这是由使用 <app> 的父组件决定的. <app>

vue中slot的用法案例

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>slot</title> <script src="./node_modules/vue/dist/vue.js"></script> </head> <body> <div id=&

vue之slot用法

slot元素作为组件模板之中的内容分发插槽.这个元素自身将被替换. 有 name 特性的 slot 称为具名 slot. 有 slot 特性的内容将分发到名字相匹配的具名 slot. 一.单个组件 如果子组件的模板不包含 slot,那么父组件的内容就会被抛弃 父组件内容 <template> <div> <child>若子组件没有slot,则这句话不会显示</child> </div> </template> <script&g

使用slot-scope复制vue中slot内容

有时候我们的vue组件需要复制使用者传递的内容. 比如我们工程里面的轮播组件需要使用复制的slot来达到循环滚动的效果 使用者关注轮播内容的静态效果,组件负责让其滚动起来 组件: <div class="horse-lamp"> <div class="lamp"> <slot name="lamps"></slot> </div> <div class="lamp&qu

vue插槽slot的理解与使用

一.个人理解及插槽的使用场景 刚开始看教程我的疑惑是为什么要用插槽,它的使用场景是什么,很多解释都是“父组件向子组件传递dom时会用到插槽”,这并不能很好的解决我的疑惑.既然你用了子组件,你为什么要给她传一些dom,直接去定义复用的子组件不就好了.后来想想觉得一个复用的组件在不同的地方只有些许变化,如果去重写子组件是很不明智的一件事,当然也可以将不同之处都写在子组件里,然后通过父组件传来的标识进行选择显示.其实质是对子组件的扩展,通过slot插槽向组件内部指定位置传递内容,即将<slot>&l

Vue.js slot插槽

1.个人理解的插槽 之所以使用组件,就是因为组件可以将复杂的页面分割成多个部分,每个 部分就是一个组件(也是一个vue文件).要使用这个组件,只需要引入组件文件,并在模版中写入组件标签即可,引入了这个子组件,就相当于引入了这个组件的html模版,例如: // App.vue <template> <div id="app"> <Child /> </div> </template> // Child组件 <templat

分享vue中 slot用法

//slot默认用法 //slot带参数name用法

vue slot

一般我发现slot都是用在子组件 不知道对不对,不对的请留言指教 ,谢谢谢谢 使用slot场景一: 子组件Minput.vue <input type='text'/> 父组件 Minput <Minput>可以显示吗</Minput> 这种情况下  Minput标签内的文字是不会渲染出来的 如果现在想在里面把文字渲染出来怎么办 好 用slot 子组件 <input type='text'/> <slot></slot> 这样的话,父