当前位置:网站首页 > Vue.js开发 > 正文

vuejs插槽(vue插槽用法)



        Vue.js 的插槽 (Slots) 是一种强大的功能,允许您定义可重用的模板片段,然后在组件的多个位置插入这些片段。通过插槽,您可以构建复杂的组件结构,同时保持代码的清晰和可维护性。

插槽是基于组件的所以要有组件

父页面

<template>
    <div>
        <h1>{{ key }}</h1>
        <hr/>
        <!--
         slot:插槽 ,可以用于在父组件中 传1段 Html 到子组件中的指定位置
        -->
        <ShowPage>
          
        </ShowPage>
        
    </div>
</template>

<script>
    
    import ShowPage from 'https://blog.csdn.net/shark1978/article/components/ShowPage.vue' ;
    
    export default {
        name: 'Test6',
        data () {
            return {
              key: '测试6-组件测试'
            }
        },
        components: {
            ShowPage
        }
    }
</script>

子组件

<template>
    <div>
        <h2>{{ key }}</h2>
        
        <div class='default'>
            
        </div>
        
        <hr/>
    </div>
</template>

<script>
    export default {
        name: 'ShowPage',
        data () {
            return {
              key: 'slot测试'
            }
        }
    }
</script>

在父页面的 ShowPage 标签中 加入

<div style="color: red;">
                新的一天
            </div>

在子组件的 class='default' div中加入 

<slot></slot>

就可以把父页面中定义的 红色的"新的一天" 加入到子组件中不需要传值。

您还可以定义具名插槽,这样您可以在父组件中明确指定要插入到哪个插槽的内容。

父页面加入:

<template v-slot:blue>
                <div style="color: blue;">
                    蓝蓝的天 
                </div>
            </template>

子组件中加入:

<h3>
            <slot name="blue"></slot>
        </h3>

就可以把父页面中定义的 蓝色的"蓝蓝的天" 加入到子组件中的h3标签中,

如果不指明就会加到 class='default' 的div标签中。

为此,您可以定义一个作用域插槽。(作用域插槽就是具名插槽的的扩展

父页面修改:

<template v-slot:blue="{title}">
                <div style="color: blue;">
                    蓝蓝的天 -- {{ title }}
                </div>

            </template>

子组件修改:

<h3>
            <!-- 把子组件的属性返回给父组件 -->
            <slot name="blue" :title="key"></slot>
        </h3>

就可以把子组件中定义的 key 的内容传给父组件拼到 蓝蓝的天 -- 的后面

然后再传回加入到子组件中的h3标签中。

到此这篇vuejs插槽(vue插槽用法)的文章就介绍到这了,更多相关内容请继续浏览下面的相关 推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • ubuntu16.04镜像源(ubuntu16镜像下载)2025-02-14 07:54:09
  • vue安装脚手架步骤(vue 安装脚手架)2025-02-14 07:54:09
  • 泰拉瑞亚怎么调节日时间(泰拉瑞亚1.4怎么调日期)2025-02-14 07:54:09
  • 前端工程化(前端工程化:基于 Vue.js 3.0 的设计与实践)2025-02-14 07:54:09
  • 多级列表2.1~3.1怎么设置(多级列表1.1如何设置)2025-02-14 07:54:09
  • vue.js从入门到实战(vue.js从入门到实战pdf)2025-02-14 07:54:09
  • map转为json对象(map转化为json)2025-02-14 07:54:09
  • vue安装步骤(vue3.0怎么安装)2025-02-14 07:54:09
  • pcie5.0显卡插槽能上pcie4.0卡吗(pcie2.0显卡能不能用pcie4.0插槽)2025-02-14 07:54:09
  • vue中插槽的使用场景(vue三种插槽的区别)2025-02-14 07:54:09
  • 全屏图片