为了让我们的组件更加具有扩展性,可以使用插槽

  1. <div id="app">
  2. <cpn>
  3. <span>返回</span>
  4. <input type="text" placeholder="搜索">
  5. <span>...</span>
  6. </cpn>
  7. </div>
  8.  
  9. <template id="cpn">
  10. <div style="display: flex;flex-direction: row">
  11. <h2>左边</h2>
  12. <h2>中间</h2>
  13. <h2>右边</h2>
  14. <slot></slot>
  15. <!--默认插槽: 当没有替换内容时默认显示-->
  16. <slot><button>按钮</button></slot>
  17. <!--<slot></slot>-->
  18. <!--<slot></slot>-->
  19. </div>
  20.  
  21. </template>
  22.  
  23. </body>
  24. <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
  25. <script>
  26. const cpn = {
  27. template: '#cpn'
  28. }
  29. const app = new Vue({
  30. el: '#app',
  31. components: {
  32. cpn
  33. }
  34. })
  35. </script>

具名插槽:

  1. 当子组件的功能复杂时,子组件的插槽可能并非是一个。
    比如我们封装一个导航栏的子组件,可能就需要三个插槽,分别代表左边、中间、右边。
    那么,外面在给插槽插入内容时,如何区分插入的是哪一个呢?
    这个时候,我们就需要给插槽起一个名字
    如何使用具名插槽呢?
    非常简单,只要给slot元素一个name属性即可
  1. <div id="app">
  2. <!--没有传入内容默认-->
  3. <cpn></cpn>
  4. <!--传入一个-->
  5. <cpn>
  6. <span slot="left">返回</span>
  7. </cpn>
  8. <!--传入全部-->
  9. <cpn>
  10. <span solt="letf">我是返回</span>
  11. <input type="text" slot="center">
  12. <span slot="right">...</span>
  13. </cpn>
  14. </div>
  15.  
  16. <template id="cpn">
  17. <div style="display: flex;flex-direction: row">
  18. <slot name="left">左侧</slot>
  19. <slot name="center">中间</slot>
  20. <slot name="right">右侧</slot>
  21. </div>
  22.  
  23. </template>
  24.  
  25. </body>
  26. <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
  27. <script>
  28. const cpn = {
  29. template: '#cpn'
  30. }
  31. const app = new Vue({
  32. el: '#app',
  33. components: {
  34. cpn
  35. }
  36. })
  37. </script>
  1.  

Vue学习笔记-插槽基本使用的更多相关文章

  1. Vue学习笔记-Vue.js-2.X 学习(三)===>组件化高级

    (四) 组件化高级 1.插槽(slot)的基本使用 A:基本使用: <slot></slot> B:默认置:<slot><h1>中间可以放默认值< ...

  2. Vue学习笔记-2

    前言 本文非vue教程,仅为学习vue过程中的个人理解与笔记,有说的不正确的地方欢迎指正讨论 1.computed计算属性函数中不能使用vm变量 在计算属性的函数中,不能使用Vue构造函数返回的vm变 ...

  3. Vue学习笔记-1

    前言 本文不是Vue.js的教程,只是一边看官网Vue的教程文档一边记录并总结学习过程中遇到的一些问题和思考的笔记. 1.vue和avalon一样,都不支持VM初始时不存在的属性 而在Angular里 ...

  4. vue 学习笔记(二)

    最近公司赶项目,一直也没时间看 vue,之前看下的都快忘得差不多了.哈哈哈,来一起回顾一下vue 学习笔记(一)后,继续向下看嘛. #表单输入绑定 基础用法 v-model 会忽略所有表单元素的 va ...

  5. vue学习笔记之:为何data是一个方法

    vue学习笔记之:为何data是一个方法 在vue开发中,我们可以发现,data中的属性值是在function中return出来的.可为何data必须是一个函数呢?我们先看官方的解释: 当一个组件被定 ...

  6. vue学习笔记(八)组件校验&通信

    前言 在上一章博客的内容中vue学习笔记(七)组件我们初步的认识了组件,并学会了如何定义局部组件和全局组件,上一篇内容仅仅只是对组件一个简单的入门,并没有深入的了解组件当中的其它机制,本篇博客将会带大 ...

  7. vue学习笔记(九)vue-cli中的组件通信

    前言 在上一篇博客vue学习笔记(八)组件校验&通信中,我们学会了vue中组件的校验和父组件向子组件传递信息以及子组件通知父组件(父子组件通信),上一篇博客也提到那是对组件内容的刚刚开始,而本 ...

  8. vue学习笔记(十)路由

    前言 在上一篇博客vue学习笔记(九)vue-cli中的组件通信内容中,我们学习组件通信的相关内容和进行了一些组件通信的小练习,相信大家已经掌握了vue-cli中的组件通信,而本篇博客将会带你更上一层 ...

  9. AntDesign vue学习笔记(七)Form 读写与图片上传

    AntDesign Form使用布局相比传统Jquery有点繁琐 (一)先读写一个简单的input为例 <a-form :form="form" layout="v ...

随机推荐

  1. IDEA创建springboot异常(Failed to load class "org.slf4j.impl.StaticLoggerBinder")

    IDEA中创建springboot项目遇到的问题 SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder". ...

  2. 【ABAP系列】SAP webservice HTTP框架出错 404错误

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列]SAP webservice H ...

  3. 怎么查看keras 或者 tensorflow 正在使用的GPU

    查看keras认得到的GPU from keras import backend as K K.tensorflow_backend._get_available_gpus() Out[28]: [' ...

  4. 面向JVM的应用程序的项目结构

    对于Maven所用的项目结构,称为Maven标准的目录结构,不包含git 一.一个典型的源代码结构: / [project-name] README.txt LICENSE.txt pom.xml / ...

  5. Django csrf,xss,sql注入

    一.csrf跨站请求伪造(Cross-site request forgery) CSRF的攻击原理:简单说就是利用了高权限帐号(如管理员)的登录状态或者授权状态去做一些后台操作,但实际这些状态并没有 ...

  6. BERT实战——基于Keras

    1.keras_bert 和 kert4keras keras_bert 是 CyberZHG 大佬封装好了Keras版的Bert,可以直接调用官方发布的预训练权重. github:https://g ...

  7. python中map函数和reduce函数的区别

    ①从参数方面来讲:map()函数: map()包含两个参数,第一个是参数是一个函数,第二个是序列(列表或元组).其中,函数(即map的第一个参数位置的函数)可以接收一个或多个参数.reduce()函数 ...

  8. JavaScript.import

    // --file.js-- function getJSON(url, callback) {   let xhr = new XMLHttpRequest();   xhr.onload = fu ...

  9. Mybatis开发中前端控制器注解@Controller 引用的类错误

    import org.springframework.web.portlet.ModelAndView; 错误 import org.springframework.web.servlet.Model ...

  10. Cannot modify header information - headers already sent by出错的原因

    <?php ob_start(); setcookie("username","送家",time()+3600); echo "the user ...