详解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的各种节点操作实例演示代码
Jun 27 Javascript
循环 vs 递归浅谈
Feb 28 Javascript
javascript读取xml实现javascript分页
Dec 13 Javascript
页面元素绑定jquery toggle后元素隐藏的解决方法
Mar 27 Javascript
Jquery给基本控件的取值、赋值示例
May 23 Javascript
浅析JavaScript中的事件机制
Jun 04 Javascript
Bootstrap被封装的弹层
Jul 20 Javascript
JS组件系列之JS组件封装过程详解
Apr 28 Javascript
对于js垃圾回收机制的理解
Sep 14 Javascript
js移动端图片压缩上传功能
Aug 18 Javascript
three.js中文文档学习之通过模块导入
Nov 20 Javascript
vue项目添加多页面配置的步骤详解
May 22 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 Cookie的一个使用注意点
2008/11/08 PHP
一些 PHP 管理系统程序中的后门
2009/08/05 PHP
PHP判断远程图片或文件是否存在的实现代码
2014/02/20 PHP
php的ZipArchive类用法实例
2014/10/20 PHP
php 多文件上传的实现实例
2016/10/23 PHP
ExtJS 2.0实用简明教程 之ExtJS版的Hello
2009/04/29 Javascript
window.opener用法和用途实例介绍
2013/08/19 Javascript
javascript比较两个日期相差天数的方法
2015/07/24 Javascript
jQuery树形插件jquery.simpleTree.js用法分析
2016/09/05 Javascript
JS 实现Base64编码与解码实例详解
2016/11/07 Javascript
Angular中点击li标签实现更改颜色的核心代码
2017/12/08 Javascript
打通前后端构建一个Vue+Express的开发环境
2018/07/17 Javascript
解决vuejs 使用value in list 循环遍历数组出现警告的问题
2018/09/26 Javascript
vue element table 表格请求后台排序的方法
2018/09/28 Javascript
深入浅析javascript函数中with
2018/10/28 Javascript
Vue-CLI项目中路由传参的方式详解
2019/09/01 Javascript
Swiper.js实现移动端元素左右滑动
2019/09/08 Javascript
寻找网站后台地址的python脚本
2014/09/01 Python
跟老齐学Python之再深点,更懂list
2014/09/20 Python
python实现图片上添加图片
2019/11/26 Python
Pytorch十九种损失函数的使用详解
2020/04/29 Python
利用Python实现某OA系统的自动定位功能
2020/05/27 Python
详解基于python的图像Gabor变换及特征提取
2020/10/26 Python
css3 background属性调整增强介绍
2010/12/18 HTML / CSS
Html5 audio标签样式的修改
2016/01/28 HTML / CSS
Qoo10台湾站:亚洲领先的在线市场
2018/05/15 全球购物
ONLY瑞典官网:世界知名服装品牌
2018/06/19 全球购物
公司部门司机岗位职责
2014/01/03 职场文书
财务主管自我鉴定
2014/01/17 职场文书
优秀志愿者事迹材料
2014/02/03 职场文书
一年级班主任工作总结2014
2014/11/08 职场文书
2014年学校教学工作总结
2014/12/06 职场文书
幼儿园大班毕业评语
2014/12/31 职场文书
消费者投诉书范文
2015/07/02 职场文书
python 如何用map()函数创建多线程任务
2021/04/07 Python
Python docx库删除复制paragraph及行高设置图片插入示例
2022/07/23 Python