插槽(slot)这个概念非常重要
插槽的使用场景1:在子组件里面显示父组件的dom
<div id='root'>
  <child content = '<p>Dell</p>'></child>
</div> <script>
Vue.component('child',{
  props:['content'],
  template:`
    <div>
      <p>hello</p>
      <div v-html='this.content'></div>
    </div>
  `
})
var vm = new Vue({
  el:'#root'
})
</script>
发现这样,能显示出来,但外层必须要包裹一层div,无法直接显示p,而且当内容比较多的时候,会比较难看,
这个时候就用到vue里面新到语法,slot
<div id='root'>
  <child>
    <h1>dell</h1>
  </child>
</div> <script>
Vue.component('child',{
  template:`
    <div>
      <p>hello</p>
      <slot></slot>
    </div>
  `
})
var vm = new Vue({
  el:'#root'
})
</script>

像这样,父组件里面直接写dom元素,通过slot引用,在子组件插入点内容,叫做插槽

slot特性
1、默认内容
Vue.component('child',{
  template:`
    <div>
      <p>hello</p>
      <slot>默认内容</slot>
    </div>
  `
})
如果父没传dom过来,slot会显示默认内容
2、当有多个slot的时候
<div id='root'>
  <body-content>
    <div class="header">header</div>
    <div class="footer">footer</div>
  </body-content>
</div> <script>
Vue.component('body-content',{
  template:`
    <div>
      <slot></slot>
      <div>content</div>
      <slot></slot>
    </div>
  `
})
var vm = new Vue({
  el:'#root'
})
</script>
像这样,肯定不对,页面会出现两个header,footer ,那怎么做,给slot取个名字,具名插槽
<div id='root'>
  <body-content>
    <div class="header" slot='header'>header</div>
    <div class="footer" slot='footer'>footer</div>
  </body-content>
</div> <script>
Vue.component('body-content',{
  template:`
    <div>
      <slot name='header'></slot>
      <div>content</div>
      <slot name='footer'></slot>
    </div>
  `
})
var vm = new Vue({
  el:'#root'
})
</script>
这样就可以,父组件中定义两个插槽,子组件进行相应的引用

在vue中使用插槽 slot的更多相关文章

  1. vue中的插槽slot

    插槽(slot):是组件的一块HTML模板,父组件决定这块模板显不显示以及怎么显示. 位置由子组件自身决定(slot现在组件template的什么位置,父组件传过来的模板将来就显示在什么位置) 匿名插 ...

  2. vue中的插槽slot理解

    本篇文章参考赛冷思的个人博客 1.函数默认传参 在我们写js函数我们的可能会给他们一个默认的参数,写法是 function show(age,name){ var age = age || 20; v ...

  3. Vue中的插槽---slot

    一:什么是插槽? 插槽(Slot)是Vue提出来的一个概念,正如名字一样,插槽用于决定将所携带的内容,插入到指定的某个位置,从而使模板分块,具有模块化的特质和更大的重用性. 插槽显不显示.怎样显示是由 ...

  4. vue中的插槽(slot)

    vue中的插槽,指的是子组件中提供给父组件使用的一个占位符,用<slot></slot>标签表示,父组件可以在这个占位符中填充任何模板代码,比如HTML.组件等,填充的内容会替 ...

  5. vue中具名插槽的使用

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  6. 详解Vue中的插槽

    作者: 小土豆 博客园:https://www.cnblogs.com/HouJiao/ 掘金:https://juejin.im/user/2436173500265335 什么是插槽 在日常的项目 ...

  7. 第八十九篇:Vue 重学插槽slot

    好家伙, 1.什么是插槽? 插槽是vue为组件的封装者提供的能力.允许开发者在封装组件时, 把不确定的,希望由用户指定的部分定义为插槽   我们依然可以把它理解为一个占位符 1.1.插槽的基本用法 试 ...

  8. vue中$refs、$slot、$nextTick相关的语法

    Vue 实例还暴露了一些有用的实例属性与方法.它们都有前缀 $,以便与用户定义的属性区分开来 1.$data和$el var data = { a: 1 } var vm = new Vue({ el ...

  9. vue中的插槽

    匿名插槽 // comp1 <div> <slot></slot> </div> // parent <comp>hello</com ...

随机推荐

  1. 6.SpringMVC2

    1.视图解析 当客户端发出请求后,交由SpringMVC的DispatcherServlet处理,接着Spring会分析看哪一个HandlerMapping定义的所有请求映射中对该请求的最合理的映射, ...

  2. python__画图表可参考(转自:寒小阳 逻辑回归应用之Kaggle泰坦尼克之灾)

    出处:http://blog.csdn.net/han_xiaoyang/article/details/49797143 2.背景 2.1 关于Kaggle 我是Kaggle地址,翻我牌子 亲,逼格 ...

  3. SUSE12Sp3安装配置.net core 生产环境(2)-安装.NET Core 2.2.1 runtime 并运行.NET代码

    1.安装libicu依赖 1.在线安装 sudo mkdir /usr/local/dotnet #创建目录 cd /usr/local/dotnet sudo wget https://downlo ...

  4. thinkphp Model的使用

    4.1 放在哪儿?项目/模块/Model目录下以本教程为例,Home模块的Model/Home/Model/目录下 4.2 model类文件叫什么?模型名: DemoModel.class.php 4 ...

  5. js遇到的奇怪问题和坑1

    if(window.confirm('你确定要删除此条信息么')){ // window.open('delete.php'); location.href='delete.php'; return ...

  6. sudo 命令问题详解(一)

    普通用户不能使用sudo命令的解决办法  https://www.cnblogs.com/fasthorse/p/5949946.html 解决sudo: sorry, you must have a ...

  7. 研磨设计模式学习笔记2--外观模式Facade

    需求:客户端需要按照需求,执行一个操作,操作包括一个系统中的3个模块(根据配置选择是否全部执行). 外观模式优点: 客户端无需知道系统内部实现,,只需要写好配置文件,控制那些模块执行,简单易用. 外观 ...

  8. error creating bean with name 'defaultvalidator' defined in class path resource

    场景: 1.直接用eclipse 运行没问题(本地用的tomcat是7.0.70): 2.打包发布到服务器运行也没问题(服务器tomcat是8.5.30): 3.将打包发布的放到本地tomcat(7. ...

  9. tomcat入门(一)几种常见的使用tomcat部署项目的方式

    1.常规方式部署 直接把web项目复制到tomcat安装目录下的%Tomcat_Home%/webapps/{web项目} 2.使用控制台进行部署 若一个web应用结构为D:\workspace\We ...

  10. B P5 第十三届北航程序设计竞赛预赛

    https://buaacoding.cn/contest-ng/index.html#/188/problems 其实这题挺简单的. 注意到答案的大小最多是22 二分,check长度是mid的不同子 ...