详解vue slot插槽的使用方法


Posted in Javascript onJune 13, 2017

官方文档其实已经讲得很详细,我根据文档,把官方的小案例实现了一下,这样更直观

<!DOCTYPE html>
<html lang="en">

<head>
 <meta charset="UTF-8">
 <title>Document</title>
 <script src="https://unpkg.com/vue@2.3.3/dist/vue.js"></script>
</head>

<body>
 <div id="app">
  <div>
   <!-- 单slot -->
   <v-one>
    <!-- 这里的所有内容会替换掉slot -->
    <p>初始化段落一</p>
    <p>初始化段落二</p>
   </v-one>
   <!-- 渲染结果 -->
   <!-- <div>
    <h1>组件标题</h1>
    <p>初始化段落一</p>
    <p>初始化段落二</p>
    <p>组件段落内容</p>
    <p>I am one</p>
   </div> -->


   <!-- 具名slot -->
   <v-two>
    <p slot="nav">我是导航</p>
    <p slot="main">我是内容</p>
    <p slot="footer">我是底部</p>
   </v-two>
   <!-- 渲染结果 -->
   <!-- <div>
    <nav>
     <p>我是导航</p>
    </nav>
    <main>
     <p>我是内容</p>
    </main>
    <footer>
     <p>我是底部</p>
    </footer>
   </div> -->


   <!-- 作用域插槽 -->
   <v-three>
   <!-- 父组件默认无法使用子组件数据 -->
     <template scope="props">
       <p>{{props.text}}</p>
     </template>
   </v-three>

   <!-- 渲染结果 -->
   <!-- <div><p>I am three</p></div> -->
  </div>
 </div>


 <template id="one">
  <div>
   <h1>组件标题</h1>
   <slot></slot>
   <p>组件段落内容</p>
   <p>{{one}}</p>
  </div>
 </template>


 <!-- 具名slot -->
 <template id="two">
  <div>
   <nav>
    <slot name="nav"></slot>
   </nav>
   <main>
    <slot name="main"></slot>
   </main>
   <footer>
    <slot name="footer"></slot>
   </footer>
  </div>
 </template>

<!-- 作用域插槽 -->
 <template id="three">
  <div>
    <!-- 把数据传递给slot,这样父组件也可以访问three这个组件的数据 -->
   <slot :text="three"></slot>
  </div>
 </template>
 <script>
 new Vue({
  el: '#app',
  components: {
   'v-one': {
    template: '#one',
    data() {
     return {
      'one': 'I am one'
     }
    }
   },
   'v-two': {
    template: '#two',
    data() {
     return {
      'two': 'I am two'
     }
    }
   },
   'v-three': {
    template: '#three',
    data() {
     return {
      'three': 'I am three'
     }
    }
   }
  }
 });
 </script>
</body>

</html>

单个slot使用最简单,也是最常用的,当我们定义了一个子组件,父组件在使用的这个组件的时候,想在内部自定义一些初始化数据,这时候就可以用slot实现。

具名slot只是给slot加了name属性,在使用的时候可以引入多个。

作用域slot就比较强大了,我们知道子组件的数据,在父组件中是无法使用的,但是通过官方提供的扩展,可以轻松实现这一点。

渲染后效果图,可以直接自己在浏览器运行查看效果

详解vue slot插槽的使用方法

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
jquery 必填项判断表单是否为空的方法
Sep 14 Javascript
WordPress JQuery处理沙发头像
Jun 22 Javascript
基于JQuery框架的AJAX实例代码
Nov 03 Javascript
鼠标事件延时切换插件
Mar 12 Javascript
jquery.mobile 共同布局遇到的问题小结
Feb 10 Javascript
Javascript中的包装类型介绍
Apr 02 Javascript
ECMAScript6函数默认参数
Jun 12 Javascript
vue实现pdf导出解决生成canvas模糊等问题(推荐)
Oct 18 Javascript
JavaScript继承与聚合实例详解
Jan 22 Javascript
tweenjs缓动算法的使用实例分析
Aug 26 Javascript
vue.js 子组件无法获取父组件store值的解决方式
Nov 08 Javascript
如何在CocosCreator里画个炫酷的雷达图
Apr 16 Javascript
详解Vue.js分发之作用域槽
Jun 13 #Javascript
Javascript实现从小到大的数组转换成二叉搜索树
Jun 13 #Javascript
微信小程序实现移动端滑动分页效果(ajax)
Jun 13 #Javascript
详解AngularJs路由之Ui-router-resolve(预加载)
Jun 13 #Javascript
微信小程序动态显示项目倒计时效果
Jun 13 #Javascript
深究AngularJS之ui-router详解
Jun 13 #Javascript
微信小程序自定义导航隐藏和显示功能
Jun 13 #Javascript
You might like
JAVA/JSP学习系列之四
2006/10/09 PHP
分页详解 从此分页无忧(PHP+mysql)
2007/11/23 PHP
教你如何开启shopnc b2b2c 伪静态
2014/10/21 PHP
PHP获取当前所在目录位置的方法
2014/11/26 PHP
php通过array_merge()函数合并两个数组的方法
2015/03/18 PHP
PHP文件管理之实现网盘及压缩包的功能操作
2017/09/20 PHP
php实例化一个类的具体方法
2019/09/19 PHP
xml文档转换工具,附图表例子(hta)
2010/11/17 Javascript
node.js中的url.resolve方法使用说明
2014/12/10 Javascript
深入理解JavaScript系列(40):设计模式之组合模式详解
2015/03/04 Javascript
Javascript中apply、call、bind的巧妙使用
2016/08/18 Javascript
纯js和css完成贪吃蛇小游戏demo
2016/09/01 Javascript
Zabbix添加Node.js监控的方法
2016/10/20 Javascript
对于js垃圾回收机制的理解
2017/09/14 Javascript
vue父组件中获取子组件中的数据(实例讲解)
2017/09/27 Javascript
详解Vue用自定义指令完成一个下拉菜单(select组件)
2017/10/31 Javascript
取消Bootstrap的dropdown-menu点击默认关闭事件方法
2018/08/10 Javascript
vue实现购物车抛物线小球动画效果的方法详解
2019/02/13 Javascript
js实现中文实时时钟
2020/01/15 Javascript
vue实现购物车加减
2020/05/30 Javascript
Python实现命令行通讯录实例教程
2016/08/18 Python
python多线程之事件Event的使用详解
2018/04/27 Python
浅谈PyQt5 的帮助文档查找方法,可以查看每个类的方法
2019/06/25 Python
python设计tcp数据包协议类的例子
2019/07/23 Python
Django的用户模块与权限系统的示例代码
2019/07/24 Python
Python笔记之代理模式
2019/11/20 Python
Python守护进程实现过程详解
2020/02/10 Python
Django数据库操作之save与update的使用
2020/04/01 Python
解决python执行较大excel文件openpyxl慢问题
2020/05/15 Python
浅谈Python描述数据结构之KMP篇
2020/09/06 Python
linux centos 7.x 安装 python3.x 替换 python2.x的过程解析
2020/12/14 Python
纯css3实现鼠标经过图片显示描述的动画效果
2014/09/01 HTML / CSS
索引覆盖(Index Covering)查询含义
2012/02/18 面试题
教学个人的自我评价分享
2014/02/16 职场文书
领导班子奢靡之风查摆问题及整改措施
2014/09/27 职场文书
《曾国藩家书》读后感——读家书,立家风
2019/08/21 职场文书