Vue知识点总结(15)——匿名插槽(超级详细)

news/2024/7/9 23:37:12 标签: vue, html, 前端, js

我们在前几期已经说过了组件的各种知识。

接下来我们就要学习插槽的内容了,插槽是Vue组件化开发的拓展内容
官方文档种解释插槽的作用就是:html" title=vue>vue中实现的一套分发内容的API,将slot元素作为承载内容分发出口。

用大白话说就是:想要在一个组件标签中添加新的内容,必须在该组件内声明一个slot元素,否则,添加的新内容则不会被渲染

通常我们会在html" title=vue>vue中将各种通用的功能单独拿出来进行封装,以便于后面复用,但是有时候需要复用的组件不是完美契合,这个时候就需要用到插槽,slot可以让用户拓展组件,更好的实现组件的复用。

接下来我们用一个简单的例子实现一下匿名插槽

我们现在设想一个业务场景,我们现在在做登录注册页面,登录注册的页面会有很多的按钮,当我们开发组件的时候,如果还像之前一样开发组件,我们会遇到哪些问题?

如果现在要做两个按钮,一个登录一个注册,组件化开发,它们的基本的内容架构是很类似的,我们要开发两个组件吗?
显然太笨重,违背组件化开发的初衷。
这个时候就要用到插槽了。

html"><div id="app">
    <App></App>
</div>
<script>
    Vue.component('MBtn',{
        template:`
            <button>
                <slot></slot>
            </button>
        `
    })
    const App = {
        data () {
            return {
                title:'老爹'
            }
        },
        template:`
            <div>
               <MBtn><a href="#">登录</a></MBtn>
               <MBtn>注册</MBtn>
            </div>
        `,
    }
    new Vue({
        el:'#app',
        data:{

        },
        components: {
            App
        }
    });
</script>

我们写了一个全局组件MBtn,也就是按钮。
在模板中,我们要尤其注意一点,在简单的button标签中,我写了一个slot标签,这个就是匿名插槽
然后我们在局部组件App中,使用一下这个MBtn全局按钮组件

插槽的好处是什么?

我们可以在使用的时候在这个组件的内部写需要的东西。
也就是我们之前提到的注册和登录,如果不用插槽的话,是没有办法直接在不使用JS的层面解决这个问题的

具体看一下App这个局部组件template模板中的内容,我们使用了两次这个MBtn组件,在里面可以任意嵌套想写的东西

这样我们只需要使用一个组件就可以分别开发注册和登录按钮。
在这里插入图片描述
是不是很方便。
在一个页面中可能有很多很多的按钮,如果我们不用插槽的话,我们是没法在其中任意嵌套我们想用的内容的,就显得很死板

其实插槽就可以简单理解为,我在那里留了一个位置,我还没有想好要放什么东西,但是我要先占着,等我想放东西,随时放

插槽是分很多种的,我们这期先暂时了解一下匿名插槽的内容,后续的内容持续更新。

有微信小程序课设、毕设需求联系个人QQ:505417246

关注下面微信公众号,可以领取微信小程序、Vue、TypeScript、前端、uni-app、全栈、Nodejs、Python等实战学习资料
最新最全的前端知识总结和项目源码都会第一时间发布到微信公众号,请大家多多关注,谢谢!

在这里插入图片描述


http://www.niftyadmin.cn/n/1576587.html

相关文章

《JavaScript高效图形编程(修订版)》——6.6 画布导出器

本节书摘来自异步社区《JavaScript高效图形编程&#xff08;修订版&#xff09;》一书中的第6章&#xff0c;第6.6节&#xff0c;作者&#xff1a;【美】Raffaele Cecco著&#xff0c;更多章节内容可以访问云栖社区“异步社区”公众号查看 6.6 画布导出器 画布完全由JavaScript…

Vue知识点总结(16)——具名插槽(超级详细)

上节我们了解了一下插槽的概念和用途&#xff0c;并且详细演示了一下匿名插槽的使用。 这期我们的任务是具名插槽。 从名字我们就可以看出区别&#xff0c;一个是匿名&#xff0c;一个是具名。 我们就不详细说插槽概念的东西了&#xff0c;直接演示具名插槽。 <div id&quo…

《用Python写网络爬虫》——1.4 编写第一个网络爬虫

本节书摘来自异步社区《用Python写网络爬虫》一书中的第1章&#xff0c;第1.4节&#xff0c;作者 [澳]Richard Lawson&#xff08;理查德 劳森&#xff09;&#xff0c;李斌 译&#xff0c;更多章节内容可以访问云栖社区“异步社区”公众号查看。 1.4 编写第一个网络爬虫 为了抓…

Vue知识点总结(17)——作用域插槽(超级详细)

之前分别了解了匿名插槽和具名插槽。 这期我们的任务是作用域插槽。 作用域插槽虽然用的不多&#xff0c;但是还是挺重要的。 我们以一个实际需求来展示作用域插槽&#xff0c;因为作用域插槽用的确实不多&#xff0c;只能在实际需求中展示它的意义。 需求&#xff1a; 已经…

《R语言数据挖掘:实用项目解析》——第1章,第1.3节数据类型转换

本节书摘来自华章出版社《R语言数据挖掘&#xff1a;实用项目解析》一书中的第1章&#xff0c;第1.3节数据类型转换&#xff0c;作者&#xff3b;印度&#xff3d;普拉迪帕塔米什拉&#xff08;Pradeepta Mishra&#xff09;&#xff0c;更多章节内容可以访问云栖社区“华章计算…

Vue知识点总结(18)——生命周期(超级详细)

码字不易&#xff0c;有帮助的同学希望能关注一下我的微信公众号&#xff1a;Code程序人生&#xff0c;感谢&#xff01; 这期的主题是Vue的生命周期。 先说一下什么是生命周期。 百度百科上是这样说的&#xff1a; 生命周期就是指一个对象的生老病死。 我们每个人都会经历生老…

《TCP/IP路由技术(第二卷)》一1.3 EGP的不足

本节书摘来自异步社区《TCP/IP路由技术&#xff08;第二卷&#xff09;》一书中的第1章&#xff0c;第1.3节&#xff0c;作者【美】Jeff Doyle&#xff0c;CCIE #1919 , Jennifer DeHaven Carroll , 更多章节内容可以访问云栖社区“异步社区”公众号查看 1.3 EGP的不足 TCP/IP路…

微信小程序如何实现转发/分享功能

在微信小程序的开发中&#xff0c;我们经常遇到把当前页面转发给好友的需求。并且大部分时候&#xff0c;转发的页面都是带参数的。这里面坑还是比较多的。 <button open-type"share" type"primary">分享给好友</button>首先我们先写一个butto…