Vue为什么要有插槽-创新互联

一般来说父组件只能复用子组件但是没办法改变子组件的内容和样式 总之就是 你可以用我但是不可以改变我

创新互联公司是专业的兴宾网站建设公司,兴宾接单;提供成都网站设计、做网站、成都外贸网站建设公司,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行兴宾网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!

就像买车一样 不能自己去决定车的配置、外观、性能、尺寸,这些都是厂家自己设计好然后批量生产的 大家买下都是一样的

而插槽的出现就提供了父组件可以改造子组件的能力 相当于你对自己的车实现了私人订制

Vue为什么要有插槽

Vue中插槽分为三种 下面我以车比作子组件来解析

1.具名插槽(侧重于改变子组件内容)

在子组件template属性中添加多个slot标签 而这个slot标签都各自带有自己的name属性 属性值都不一样



父组件可以对应不同的name值 把相对应的内容 插入到各自slot标签里
slot标签内可以包裹任意原子组件的内容 插入的内容将会替换掉它

(就像在车上不同的位置对应加装不同的配件)

Vue为什么要有插槽

2、默认插槽(侧重于改变子组件内容)

在子组件template属性中添加一个slot标签 而这个slot标签不带name属性

父组件里任何内容都默认加到这个slot标签里
slot标签内可以包裹任意原子组件的内容 插入的内容将会替换掉它

(就像在车上默认只在车顶这一个地方加装行李架 所有配件都是放到车顶做行李架的)

Vue为什么要有插槽

3、作用域插槽(侧重于改变子组件样式)

父组件复用子组件的时候 对某一个子组件内容样式不满意 此时在 子组件内你希望改变的那部分内容外 包裹一个slot标签 给slot自定义一个属性(名称自己起)父组件模板定义一个slot-scope="slot"属性 模板内通过slot.xxx可以拿到子组件的数据 拿到数据后就好办了 可以任你蹂躏了 你想把它弄成什么样就弄成什么样
父组件改变了子组件的样式 但是内容还是子组件的





(就像是你对车身颜色不满意 你把灰色改成了白色但是车还是原来的车)

Vue为什么要有插槽

组件的插槽是为了让我们封装的组件更加具有扩展性。我们在路上看到的吉普牧马人基本上绝大多数都是被改装过的,有的改装过后更加的好看,有的更加霸气,有的攀爬能力大大提高, 牧马人之所以可以轻易被改装,就是因为他天生的越野基因和改装潜力,我们在封装组件的时候也是也是一样的,要尽可能地预备插槽,提升组件的“改装潜力”,比如移动网站的导航栏,移动开发中几乎每个页面都有导航栏,但是每个页面的导航栏都是一样的吗?NO! 导航栏我们必然要封装成一个插件,比如nav-bar组件,一旦有了这个组件,我们就可以在多个页面进行复用了。

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


文章名称:Vue为什么要有插槽-创新互联
本文路径:http://pwwzsj.com/article/cdpjse.html