详解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中的ArrayBuffer详细介绍
Dec 08 Javascript
bootstrap table 服务器端分页例子分享
Feb 10 Javascript
IE浏览器下PNG相关功能
Jul 05 Javascript
Node.js程序中的本地文件操作用法小结
Mar 06 Javascript
原生JS实现平滑回到顶部组件
Mar 16 Javascript
简单实现js页面切换功能
Jan 10 Javascript
使用socket.io实现简单聊天室案例
Jan 02 Javascript
vue组件与复用详解
Apr 08 Javascript
微信小程序云开发之使用云存储
May 17 Javascript
element中el-container容器与div布局区分详解
May 13 Javascript
一篇文章让你搞懂JavaScript 原型和原型链
Nov 23 Javascript
Ajax是什么?Ajax高级用法之Axios技术
Apr 21 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
php下实现在指定目录搜索指定类型文件的函数
2008/10/03 PHP
php生成随机密码的几种方法
2011/01/17 PHP
深入解析fsockopen与pfsockopen的区别
2013/07/05 PHP
PHP包含文件函数include、include_once、require、require_once区别总结
2014/04/05 PHP
php页面函数设置超时限制的方法
2014/12/01 PHP
JavaScript高级程序设计 阅读笔记(七) ECMAScript中的语句
2012/02/27 Javascript
js open() 与showModalDialog()方法使用介绍
2013/09/10 Javascript
JQuery异步加载无限下拉框级联功能实现示例
2014/02/19 Javascript
让angularjs支持浏览器自动填表
2014/11/10 Javascript
JS加载iFrame出现空白问题的解决办法
2016/05/13 Javascript
JS基础随笔(菜鸟必看篇)
2016/07/13 Javascript
轻松掌握JavaScript中介者模式
2016/08/26 Javascript
JS当前页面登录注册框,固定DIV,底层阴影的实例代码
2016/09/29 Javascript
学习vue.js中class与style绑定
2016/12/03 Javascript
Javarscript中模块(module)、加载(load)与捆绑(bundle)详解
2017/05/28 Javascript
Bootstrap图片轮播效果详解
2017/10/17 Javascript
浅谈Node异步编程的机制
2017/10/18 Javascript
简单实现jquery隔行变色
2017/11/09 jQuery
[01:20]DOTA2 齐天大圣至宝动态展示
2016/12/13 DOTA
Python遍历目录并批量更换文件名和目录名的方法
2016/09/19 Python
Python贪吃蛇游戏编写代码
2020/10/26 Python
python中字符串类型json操作的注意事项
2017/05/02 Python
关于python列表增加元素的三种操作方法
2018/08/22 Python
PyCharm2019安装教程及其使用(图文教程)
2019/09/29 Python
python manage.py runserver流程解析
2019/11/08 Python
python os.path.isfile 的使用误区详解
2019/11/29 Python
python爬虫利用代理池更换IP的方法步骤
2021/02/21 Python
friso美素佳儿官方海外旗舰店:荷兰原产原罐
2017/07/03 全球购物
LN-CC日本:高端男装和女装的奢侈时尚目的地
2019/09/01 全球购物
毕业生求职简历的自我评价
2013/10/23 职场文书
就业推荐表自我鉴定范文
2014/03/21 职场文书
就业推荐表自我鉴定
2014/03/21 职场文书
孟佩杰观后感
2015/06/17 职场文书
法制教育主题班会
2015/08/13 职场文书
Redis Cluster 集群搭建你会吗
2021/08/04 Redis
Java设计模式之代理模式
2022/04/22 Java/Android