zoukankan      html  css  js  c++  java
  • Vue学习笔记-插槽基本使用

    为了让我们的组件更加具有扩展性,可以使用插槽

    <div id="app">
        <cpn>
            <span>返回</span>
            <input type="text" placeholder="搜索">
            <span>...</span>
        </cpn>
    </div>
    
    <template id="cpn">
        <div style="display: flex;flex-direction: row">
            <h2>左边</h2>
            <h2>中间</h2>
            <h2>右边</h2>
            <slot></slot>
            <!--默认插槽: 当没有替换内容时默认显示-->
            <slot><button>按钮</button></slot>
            <!--<slot></slot>-->
            <!--<slot></slot>-->
        </div>
    
    </template>
    
    </body>
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
    <script>
        const cpn = {
            template: '#cpn'
        }
        const app = new Vue({
            el: '#app',
            components: {
                cpn
            }
        })
    </script>

    具名插槽:

    当子组件的功能复杂时,子组件的插槽可能并非是一个。
    比如我们封装一个导航栏的子组件,可能就需要三个插槽,分别代表左边、中间、右边。
    那么,外面在给插槽插入内容时,如何区分插入的是哪一个呢?
    这个时候,我们就需要给插槽起一个名字
    如何使用具名插槽呢?
    非常简单,只要给slot元素一个name属性即可
    <div id="app">
        <!--没有传入内容默认-->
        <cpn></cpn>
        <!--传入一个-->
        <cpn>
            <span slot="left">返回</span>
        </cpn>
        <!--传入全部-->
        <cpn>
            <span solt="letf">我是返回</span>
            <input type="text" slot="center">
            <span slot="right">...</span>
        </cpn>
    </div>
    
    <template id="cpn">
        <div style="display: flex;flex-direction: row">
            <slot name="left">左侧</slot>
            <slot name="center">中间</slot>
            <slot name="right">右侧</slot>
        </div>
    
    </template>
    
    </body>
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
    <script>
        const cpn = {
            template: '#cpn'
        }
        const app = new Vue({
            el: '#app',
            components: {
                cpn
            }
        })
    </script>
     
    不积跬步无以至千里
  • 相关阅读:
    Kruskal重构树学习笔记
    亚洲和欧洲的分界线是谁划分的?
    代码目录 (App_Code 目录)及namespace的理解
    Events解惑——来自MSDN
    HttpContext.Current.Response和Response有什么区别?
    Ramdisk 内存盘的使用
    MVC模式 介绍
    关于Windows Workflow Foundation 调试时的经验小解(不断添加)
    关于类成员变量的声明和实例化的时机
    软件名称备份
  • 原文地址:https://www.cnblogs.com/lyt0207/p/11906960.html
Copyright © 2011-2022 走看看