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

vue插槽作用域(vue中插槽的使用场景)



前言

Vue的slot插槽,可以从字面意思来了解用途,占用占坑的意思,既然是占坑肯定是先占坑后面有其他具体的内容来替换代替。根据slot的应用场景可以分为匿名slot和具名slot。

一、个人理解及插槽的使用场景

刚开始看教程我的疑惑是为什么要用插槽,它的使用场景是什么,很多解释都是“父组件向子组件传递dom时会用到插槽”,这并不能很好的解决我的疑惑。既然你用了子组件,你为什么要给她传一些dom,直接去定义复用的子组件不就好了。后来想想觉得一个复用的组件在不同的地方只有些许变化,如果去重写子组件是很不明智的一件事,当然也可以将不同之处都写在子组件里,然后通过父组件传来的标识进行选择显示。其实质是对子组件的扩展,通过slot插槽向组件内部指定位置传递内容,即将<slot></slot>元素作为承载分发内容的出口;

二、用于理解的例子

目前还没接触到使用插槽解决实际问题很好的例子,只能这样去为了理解插槽而用,可能并没有很好的利用到插槽的好处。

在父组件定义想要传入子组件作为插槽的内容,App.vue

在子组件利用<slot></slot>元素作为承载分发内容的出口,父组件的插槽内容将在其中显示,todolist.vue

三、具体知识点

1、具名插槽

上面的例子只使用了一个slot插槽,但有时我们在一个组件里可能会多处使用插槽,我们希望在不同的插槽处插入不同的内容,此时便需要进行区分,<slot> 元素有一个特殊的特性:name。这个特性可以用来定义插槽的名字,在向具名插槽提供内容的时候,我们可以在一个 <template> 元素上使用

v-slot 指令,并以 v-slot 的参数的形式写出插槽的名称,使其一一对应。

2、作用域插槽

为了使父组件的插槽内容可以使用子组件的数据,可以在 <slot> 元素上绑定想要传递的数据,此特性被称为插槽 prop。同时在父级作用域中,给 v-slot 带一个值来定义我们提供的插槽 prop 的名字,便可获取到。但此内容只在 <template>作用域内可用。

四、自 2.6.0 起有所更新的语法变化

1、带有slot特性的具名插槽

2、带有slot-scope特性的作用域插槽

五、突发奇想的调换

也就是只能在父组件使用。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对脚本之家的支持。

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

版权声明


相关文章:

  • cjson库(cjson库删除项的方法)2025-05-31 12:18:07
  • vue2官方文档(vue 官方文档)2025-05-31 12:18:07
  • plsql7.15注册码(plsql14注册码)2025-05-31 12:18:07
  • vue 路由守卫和路由拦截器(vue路由守卫和axios拦截器)2025-05-31 12:18:07
  • vmware密钥能用几次(vmware12.0密钥)2025-05-31 12:18:07
  • 安装vue-router(安装vuerouter过程遇到哪些)2025-05-31 12:18:07
  • json转map保留null(json转为map)2025-05-31 12:18:07
  • ubuntu更新源报错(ubuntu20.04更新源)2025-05-31 12:18:07
  • pcie 5.0固态(pcie 5.0固态可以插到pcie 3.0上吗)2025-05-31 12:18:07
  • Vue安装选择Router按什么键(vue安装router命令)2025-05-31 12:18:07
  • 全屏图片