详解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代码
May 09 Javascript
jquery入门必备的基本认识及实例(整理)
Jun 24 Javascript
在jquery中的ajax方法怎样通过JSONP进行远程调用
Apr 04 Javascript
jquery操作HTML5 的data-*的用法实例分享
Aug 17 Javascript
jquery插件splitScren实现页面分屏切换模板特效
Jun 16 Javascript
jQuery fancybox在ie浏览器下无法显示关闭按钮的解决办法
Feb 19 Javascript
JS实现将数字金额转换为大写人民币汉字的方法
Aug 02 Javascript
vue指令以及dom操作详解
Mar 04 Javascript
Angular2搜索和重置按钮过场动画
May 24 Javascript
JS实现继承的几种常用方式示例
Jun 22 Javascript
JS数组方法concat()用法实例分析
Jan 18 Javascript
WebPack工具运行原理及入门教程
Dec 02 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中通过语义URL防止网站被攻击的方法分享
2011/09/08 PHP
php使用curl访问https示例分享
2014/01/17 PHP
详解Window7 下开发php扩展
2015/12/31 PHP
[原创]解决wincache不支持64位PHP5.5/5.6的问题(提供64位wincache下载)
2016/06/22 PHP
使用PHPUnit进行单元测试并生成代码覆盖率报告的方法
2019/03/08 PHP
分享几种好用的PHP自定义加密函数(可逆/不可逆)
2020/09/15 PHP
JS+XML 省份和城市之间的联动实现代码
2009/10/14 Javascript
获取网站跟路径的javascript代码(站点及虚拟目录)
2009/10/20 Javascript
ExtJs扩展之GroupPropertyGrid代码
2010/03/05 Javascript
JavaScript prototype对象的属性说明
2010/03/13 Javascript
jQuery 类twitter的文本字数限制带提示效果插件
2010/04/16 Javascript
C#中TrimStart,TrimEnd,Trim在javascript上的实现
2011/01/17 Javascript
javascript基础练习之翻转字符串与回文
2017/02/20 Javascript
详解Node.js项目APM监控之New Relic
2017/05/12 Javascript
微信小程序“摇一摇”的实例代码
2017/07/20 Javascript
AngularJS 打开新的标签页实现代码
2017/09/07 Javascript
详解用Node.js写一个简单的命令行工具
2018/03/01 Javascript
Taro UI框架开发小程序实现左滑喜欢右滑不喜欢效果的示例代码
2020/05/18 Javascript
Python yield 小结和实例
2014/04/25 Python
Python在线运行代码助手
2016/07/15 Python
python 爬虫出现403禁止访问错误详解
2017/03/11 Python
Python numpy线性代数用法实例解析
2019/11/15 Python
解决os.path.isdir() 判断文件夹却返回false的问题
2019/11/29 Python
python 实现dict转json并保存文件
2019/12/05 Python
Python netmiko模块的使用
2020/02/14 Python
Python将字典转换为XML的方法
2020/08/01 Python
python实现模拟器爬取抖音评论数据的示例代码
2021/01/06 Python
网页中的电话号码如何实现一键直呼效果_附示例
2016/03/15 HTML / CSS
前端面试必备之html5的新特性
2017/09/05 HTML / CSS
HTML5 canvas实现的静态循环滚动播放弹幕
2021/01/05 HTML / CSS
韩国三星旗下的一家超市连锁店:Home Plus
2016/07/30 全球购物
美国知名的网上鞋类及相关服装零售商:Shoes.com
2017/05/06 全球购物
英国现代市场:ARKET
2019/04/10 全球购物
一家外企的面试题目(C/C++面试题,C语言面试题)
2014/03/24 面试题
旅游文化节策划方案
2014/06/06 职场文书
大学生心理健康教育心得体会
2016/01/12 职场文书