详解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 相关文章推荐
JavaScript中获取未知对象属性的代码
Apr 27 Javascript
Javascript操作cookie的函数代码
Oct 03 Javascript
Javascript的数组与字典用法与遍历对象的属性技巧
Nov 07 Javascript
jquery做的一个简单的屏幕锁定提示框
Mar 26 Javascript
Redis基本知识、安装、部署、配置笔记
Mar 05 Javascript
js实现网页收藏功能
Dec 17 Javascript
Bootstrap每天必学之弹出框(Popover)插件
Apr 25 Javascript
jquery按回车键实现表单提交的简单实例
May 25 Javascript
JS实现自动阅读单词(有道单词本添加功能)
Nov 14 Javascript
Angular实现下载安装包的功能代码分享
Sep 05 Javascript
vue实现随机验证码功能的实例代码
Apr 30 Javascript
JavaScript前端面试扁平数据转tree与tree数据扁平化
Jun 14 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
ThinkPHP的I方法使用详解
2014/06/18 PHP
利用php做服务器和web前端的界面进行交互
2016/10/31 PHP
javascript函数中的arguments参数
2010/08/01 Javascript
firebug的一个有趣现象介绍
2011/11/30 Javascript
js+xml生成级联下拉框代码
2012/07/24 Javascript
js如何取消事件冒泡
2013/09/23 Javascript
jQuery中使用data()方法读取HTML5自定义属性data-*实例
2014/04/11 Javascript
举例详解Python中smtplib模块处理电子邮件的使用
2015/06/24 Javascript
JS实现横向与竖向两个选项卡Tab联动的方法
2015/09/27 Javascript
jQuery实现的网页右下角tab样式在线客服效果代码
2015/10/23 Javascript
需要牢记的JavaScript基础知识
2016/09/25 Javascript
javascript读取文本节点方法小结
2016/12/15 Javascript
JavaScript变量类型以及变量作用域详解
2017/08/14 Javascript
浅谈vue自定义全局组件并通过全局方法 Vue.use() 使用该组件
2017/12/07 Javascript
微信小程序自定义可滑动日历界面
2018/12/28 Javascript
[04:11]2014DOTA2国际邀请赛 CIS遗憾出局梦想不灭
2014/07/09 DOTA
[02:47]DOTA2亚洲邀请赛 HR战队出场宣传片
2015/02/07 DOTA
[54:27]TNC vs Serenity 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
[38:39]KG vs Mineski 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/16 DOTA
利用python模拟sql语句对员工表格进行增删改查
2017/07/05 Python
Python合并多个Excel数据的方法
2018/07/16 Python
Python 2.6.6升级到Python2.7.15的详细步骤
2020/12/14 Python
JBL英国官网:JBL UK
2018/07/04 全球购物
美国帽子俱乐部商店:Hat Club
2019/07/05 全球购物
房地产广告词大全
2014/03/19 职场文书
车辆转让协议书
2014/04/15 职场文书
推荐信模板
2014/05/09 职场文书
给校长的建议书200字
2014/05/16 职场文书
捐助贫困学生倡议书
2014/05/16 职场文书
安全施工责任书
2014/08/25 职场文书
廉政教育的心得体会
2014/09/01 职场文书
11.9消防日宣传标语
2014/10/08 职场文书
2014年协会工作总结
2014/11/22 职场文书
入党心得体会
2019/06/20 职场文书
古诗文之爱国名句(77句)
2019/09/24 职场文书
MySQL如何构建数据表索引
2021/05/13 MySQL