zoukankan      html  css  js  c++  java
  • 学习笔记:Vue——插槽

    关于Vue插槽,只用过最简单的语法,现在完整地走一遍官方文档说明,并且探索更多用法。


    01.如果组件中没有包含一个<slot>元素,则该组件起始标签和结束标签之间的任何内容都会被抛弃。

    02.父级模板里的所有内容都是在父级作用域中编译的;子模板里的所有内容都是在子作用域中编译的。

    03.后备(默认)内容

    <button type="submit">
      <slot>Submit</slot>
    </button>

    04.具名插槽

    <slot>元素有一个特殊的特性:name

    <div class="container">
      <header>
        <slot name="header"></slot>
      </header>
      <main>
        <slot></slot>
      </main>
      <footer>
        <slot name="footer"></slot>
      </footer>
    </div>

    一个不带name的<slot>出口会带有隐含的名字"default"

    05.作用域插槽

    让插槽内容能够访问子组件中才有的数据是很有用的。

    绑定在<slot>元素上的特性被称为插槽prop

    <current-user>
      <template v-slot:default="slotProps">
        {{ slotProps.user.firstName }}
      </template>
    </current-user>

    独占默认插槽的缩写语法

    <current-user v-slot="slotProps">
      {{ slotProps.user.firstName }}
    </current-user>

    只要出现多个插槽,请始终为所有的插槽使用完整的基于<template>的语法

    <current-user>
      <template v-slot:default="slotProps">
        {{ slotProps.user.firstName }}
      </template>
    
      <template v-slot:other="otherSlotProps">
        ...
      </template>
    </current-user>

    06.解构插槽Prop

    <current-user v-slot="{ user }">
      {{ user.firstName }}
    </current-user>
    <current-user v-slot="{ user: person }">
      {{ person.firstName }}
    </current-user>
    <current-user v-slot="{ user = { firstName: 'Guest' } }">
      {{ user.firstName }}
    </current-user>

    07.动态插槽名

    <base-layout>
      <template v-slot:[dynamicSlotName]>
        ...
      </template>
    </base-layout>

    08.具名插槽的缩写#

    <base-layout>
      <template #header>
        <h1>Here might be a page title</h1>
      </template>
    
      <p>A paragraph for the main content.</p>
      <p>And another one.</p>
    
      <template #footer>
        <p>Here's some contact info</p>
      </template>
    </base-layout>
  • 相关阅读:
    2020-03-12推荐阅读链接
    一问带你区分清楚Authentication,Authorization以及Cookie、Session、Token
    Alibaba-技术专区-开源项目之Nacos源码分析
    Alibaba-技术专区-开源项目之Nacos功能特性
    Alibaba-技术专区-开源项目之Nacos环境准备
    Java-技术专区-javaAgent(插桩,attach)
    SkyWalking 6.x 源码分析 —— 调试环境搭建 (非原创)
    SkyWalking 6.2-Docker-Compose搭建单体
    Zookeeper-技术专区-配置以及学习
    Java-技术专区-设计模式-reactor模式
  • 原文地址:https://www.cnblogs.com/cathy1024/p/10905029.html
Copyright © 2011-2022 走看看