插槽(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. codeforces之4.1学习记录

    记录一些之前没见过的代码: #include <bits/stdc++.h> using namespace std; typedef long long ll; #define INF ...

  2. c++ primer 中讲的顶层const 和 底层 const 理解

    c++ primer 中讲的    顶层const 和 底层 const   以前没搞懂的顶层const和底层const,这次看了后感觉明白了. 首先,const是一个限定符,被它修饰的变量的值不能改 ...

  3. CentOS 同时忘记用户名和密码

    开机时,狂按Esc 光标选中之前开机常用的那个系统,按下e进入编辑模式 按'↑'和'↓'在该页面找到quiet,在它后面加上single 按Ctrl + x进入到单用户模式 再次进入后,系统会提示你输 ...

  4. jmeter-集合点---学习笔记

    集合点: 简单来理解一下,虽然我们的“性能测试”理解为“多用户并发测试”,但真正的并发是不存在的,为了更真实的实现并发这感念,我们可以在需要压力的地方设置集合点,每到输入用户名和密码登录时,所有的虚拟 ...

  5. input元素的blur事件与定位在其上面的元素的点击(click)事件冲突的解决方法

    在登录和注册框中,在input上定位一个清空内容的按钮. 但是给按钮的单击事件不生效. 解决的办法: 在blur的回调函数中加一个定时器,延迟blur回调函数的执行时间,这样的话虽然在点击div的时候 ...

  6. 配置matcaffe 遇到的两个坑

    1. 问题 (1) Invalid MEX-file '/root/caffe/matlab/+caffe/private/caffe_.mexa64': /matlab/r2016a/bin/gln ...

  7. ORACLE分页SQL

    1,使用rownum SELECT * FROM ( SELECT A.*, ROWNUM RN FROM (SELECT * FROM TABLE_NAME) A ) 2,使用between SEL ...

  8. Sublime Text格式化HTML JS CSS代码

    Sublime Text是开发Hybrid应用的神器,但是有时候对糟糕的代码格式很懊恼,尤其是团队成员比较多,并且代码风格不是很统一的时候.幸好有可用的格式化插件,比较好用的就是HTML-CSS-JS ...

  9. Spring中的一些常用接口

    一.ApplicationContextAware接口 注:可以在spring容器初始化的时候调用setApplicationContext方法,从而获得ApplicationContext中的所有b ...

  10. Assignment 1:Chinese Text Data Processing.

    记录过程. Lucene分词:http://blog.csdn.net/cyxlzzs/article/details/7999212 Lucene自定义词典:http://lilongbao.blo ...