Vue2 Slot插槽入门典例

2023-05-16

文章目录

  • 开篇
    • 初识slot
    • 具名slot
    • 作用域slot
    • 作用域插槽典例
      • 分析
    • 访问slot内部信息

开篇

学习任何内容,再多的话都不如实践来的直接——🌼🌻🌼

初识slot

具名slot

<slot>元素指定一个name后可以分发多个内容,具名slot可以与单个slot共存

<div id="app">
    <child-component>
        <h2 slot="header">标题</h2>
        <p>正文内容</p>
        <p>更多的正文内容</p>
        <div slot="footer">底部信息</div>
    </child-component>
</div>
Vue.component('child-component', {
    template: '\
    <div class="container">\
        <div class="header">\
            <slot name="header"></slot>\
        </div>\
        <div class="main">\
            <slot></slot>\
        </div>\
        <div class="footer">\
            <slot name="footer"></slot>\
        </div>\
    </div>'
})
var app = new Vue({
    el: '#app'
})

在这里插入图片描述
渲染后的效果:
在这里插入图片描述
这里有一个小tips:那就是<div class=main>内的<slot>没有name特性,那么它将作为默认slot出现,父组件没有使用slot特性的元素与内容都将在这里出现。
如果没有指定默认的匿名slot,父组件内多余的内容片段就都将被抛弃

作用域slot

<div id="app">
    <child-component>
        <template scope="props">
            <p>来自父组件内容</p>
            <p>{{props.msg}}</p>
        </template>
    </child-component>
</div>
 Vue.component('child-component', {
        template: '\
        <div class="container">\
            <slot msg="来自子组件的内容"></slot>\
        </div>'
    })
 var app = new Vue({
     el: '#app'
 })

这里的props它只是一个传递数据给组件的写法,就像:
v-for="item in items"里的item一样,父组件中使用了<template>元素,并且拥有了一个scope="props"的特性,这里的props只是一个临时变量,template可以通过临时变量来访问来自子组件插槽的数据msg,再来看一个经典例子,那就访问数组

作用域插槽典例

<div id="app">  
    <my-list :books="books">
        <!-- 作用域插槽也可以是具名slot -->
        <template slot="book" scope="props">
            <li>{{props.bookName}}</li>
        </template>
    </my-list>
</div>
Vue.component('my-list', {
   props: {
       books: {
           type: Array,
           dufault: function(){
               return [];
           }
       }
   },
   template: '\
   <ul>\
       <slot name="book" \
       v-for="book in books"\
           :book-name="book.name">\
       </slot>\
   </ul>'
});

var app = new Vue({
   el: '#app',
   data: {
       books: [
           {name: '《实战》'},
           {name: '《实战2》'},
           {name: '《实战3》'}
       ]
   }
})

在这里插入图片描述

分析

在这里插入图片描述

访问slot内部信息

用的例子是第一个

<div id="app">
    <child-component>
        <h2 slot="header">标题</h2>
        <p>正文内容</p>
        <p>更多的正文内容</p>
        <div slot="footer">底部信息</div>
    </child-component>
</div>
 Vue.component('child-component', {
        template: '\
        <div class="container">\
            <div class="header">\
                <slot name="header"></slot>\
            </div>\
            <div class="main">\
                <slot></slot>\
            </div>\
            <div class="footer">\
                <slot name="footer"></slot>\
            </div>\
        </div>',
        mounted: function() {
            var header = this.$slots.header;
            var main = this.$slots.default;
            var footer = this.$slots.footer;
            console.log(footer);
            console.log(footer[0].elm.innerHTML);
        },
    })
    var app = new Vue({
        el: '#app'
    })

在这里插入图片描述
这里我们使用$slots来访问具名slot,$slots.default包括了所有没有被包含再具名slot中的节点。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Vue2 Slot插槽入门典例 的相关文章

  • Vue移动端网页(H5)预览pdf文件(pdfh5和vue-pdf)

    一 使用插件pdfh5预览pdf 参考文档 pdfh5 npm 项目相关依赖版本信息 预览效果如下图所示 1 上下滚动和缩放查看 2 左上角固定显示当前页码和总页数 3 右下角一键回到顶部按钮 4 在每页pdf上添加图片水印 安装插件 ya
  • vue项目性能优化详解汇总

    提起性能优化 很多人眼前浮现的面试经验是不是历历在目呢 反正 性能优化在我看来他永远是前端领域的热度之王 先说一下性能优化的方案 一 基础优化 代码以及编码规范 1 v if 和 v show 区分使用场景 v if false时不渲染DO
  • 解决Vue路由重复点击报错问题

    给一个元素绑定跳转路由的事件时 跳转后当我们重复点击时就会报以下错误 原因 vueRouter版本问题 解决方案1 降低VueRouter的版本 使用旧版本的VueRouter 3 0 xxx 解决方案2 跳转路径后 捕获异常 不做处理 这
  • vue从入门到入土---复习 路由

    目录 前端路由的概念与原理 vue router 的基本用法 vue router 的高级用法 后台管理案例 总结 前端路由的概念与原理 1 什么是路由 路由 英文 router 就是对应关系 路由分为两大类 后端路由 前端路由 2 回顾
  • 【解决】JS中使用foreach循环,无法终止判断跳出循环;JS中使用try catch跳出foreach循环;浅谈JS深浅拷贝......

    问题 在foreach循环中有一个判断 需要在第一次符合该判断时跳出该循环 结果是未跳出 示例代码如下 this arr forEach item index gt if item uuid this uuid 会走多次该循环 此时使用re
  • vue2.x与vue3.x中自定义指令详解

    目录 前言 一 自定义指令分类 二 Vue2 x自定义指令钩子函数 1 bind与update区别 2 update与componentUpdated区别 3 钩子函数的参数 4 局部自定义指令 5 全局自定义指令 6 简写形式 三 Vue
  • Vue只弹一次的弹框cookie

  • antV使用教程入门

    在移动端使用antV F2图表入门介绍 1 通过npm安装 npm install antv f2 save 成功安装完成之后 即可使用 import 或 require 进行引用 const F2 require antv f2 2 通过
  • 企业级Vue路由角色权限应该怎么做?

    角色权限 角色权限 简单来说就是登录的用户能看到系统的哪些页面 不能看到系统的哪些页面 一般是后台管理系统才会涉及到如此复杂的角色权限 对于 vue 技术栈 实现角色权限一般有两种方式 第一种是利用 beforeEach 全局前置守卫 第二
  • vue 使用MD5加密

    概念 MD5是一种信息摘要算法 对称加密 一种被广泛使用的密码散列函数 可以产生出一个128位 16字节 的散列值 用来确保信息传输完整一致性 它可以计算任意长度的输入字符串 得到固定长度的输出 而且这个算法是不可逆的 即使得到了加密的密文
  • Vue常用的修饰符有哪些?分别有什么应用场景?

    一 修饰符是什么 在程序世界里 修饰符是用于限定类型以及类型成员的声明的一种符号 在Vue中 修饰符处理了许多DOM事件的细节 让我们不再需要花大量的时间去处理这些烦恼的事情 而能有更多的精力专注于程序的逻辑处理 vue中修饰符分为以下五种
  • vue项目中使用CDN引入

    前言 CDN 内容分发网络 指请求资源的方式 即通过script头去请求对应的脚本资源的一种方式 项目里配置之后不需要通过npm包管理工具去下载配置的包 目的 将引用的外部js css文件剥离开来 不编译到vendor js中 而是用资源的
  • el-table列筛选filter-method多次调用问题

    filter method filter method 数据过滤使用的方法 如果是多选的筛选项 对每一条数据会执行多次 任意一次返回 true 就会显示
  • 《基础篇第4章:vue2基础》:使用vue脚手架创建项目

    文章目录 4 1初始化脚手架 4 1 1说明 4 1 2具体步骤 4 1 3模板项目的结构 4 1 4 创建第一个vue项目分析index html组成部分 4 1 5render函数 4 1 6修改默认配置 本人其他相关文章链接 4 1初
  • vue从入门到入土--------综合案例

    目录 vue cli 组件库 axios 拦截器 proxy 跨域代理 用户列表案例 总结 vue cli 1 什么是 vue cli vue cli 俗称 vue 脚手架 是 vue 官方提供的 快速生成 vue 工程化项目的工具 vue
  • vue2的了解

    目录 前言 一 性能优化 二 vue 1 keep live 2 vuex 3 v once 4 mixin 5 v if和v show 6 防抖和节流 7 promise 8 freez冻结数据 9 http状态码 10 重绘和回流 11
  • vue插件(vue-print-nb)实现打印功能

    vue插件vue print nb实现打印功能 1 安装vue print nb 2 引入Vue项目 3 在组件中使用 4 vue print nb插件优化 1 安装vue print nb Vue2 0版本安装方法 npm install
  • Qt 中的 SIGNAL 和 SLOT 宏:它们的作用是什么?

    我是 Qt 的初学者并试图理解SIGNAL and SLOT宏 当我学习使用connect绑定信号和槽的方法 我发现Qt官方参考页上的教程使用 connect obj1 SIGNAL signal int obj2 SLOT slot 然而
  • wit.ai + 基于插槽的机器人 + 在客户端中保存实体值

    我正在尝试 wit ai 中的示例 链接如下 https wit ai Nayana Manchi CreditCardApp stories https wit ai Nayana Manchi CreditCardApp stories
  • vue2中Cascader 级联选择器限制选择个数和回显问题

    文章目录 1 组件默认数据绑定 2 指定数据绑定 3 watch监听v model绑定的数组 控制选中个数 4 前后端数据转换 实现回显 1 接口初始数据回显 2 重新选择级联选择器后 如何将选择的数据转换成后端需要的数据 3 最后提交数据

随机推荐