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

Vue插槽用法(vue3插槽)




我们经常会有封装组件的需求, 组件需要的往往不只有数据, 有时候我们要给一个模块做内容方面的可自定义, 比如我封装了一个黑板, 但是我有时希望上面是字, 又有时希望上面是图画, 这就要用到插槽了.

感谢你浪费一分钟生命读完了这段废话.


就是普通插槽, 也叫默认插槽.
只要你在子组件里写一个< slot></ slot>就可以从父组件向内部填充了.
虽然简单但是不写slot也是不能直接从父组件插内容的.
子组件:


 
    

父组件:

 
    

在这里插入图片描述
缺点就是不能规定父组件填充内容所指向的插槽, 父组件内填充的所有内容, 会填充到每个子组件内的插槽中:
子组件:

 
    

父组件:

 
    

在这里插入图片描述
解决这个问题 就需要具名插槽了.


特点是带有name属性:

 
     
 
     

v-slot:可以简写为"#"

 
     
 
     

Vue官方文档: 没有被包裹在带有 v-slot: 的 < template> 中的内容都会被视为默认插槽内容.


从 2.6.0 开始,可以用方括号括起来的JS表达式作为一个指令(v-bind啥的)的参数,比如在此例中

 
      

其实这个东西最常见的是在封装组件时, 我们用computed里的方法返回值来控制:class和:style:

 
      
 
      

在2.6版本新增的内容中, 这种用法(动态指令参数)也可以用在具名插槽上定义动态的插槽名, 这其实是具名插槽的扩展用法, 你可以先看看具名插槽.

 
      

在子组件的slot上利用v-bind / v-for之类绑定上父组件需要的各种数据, 渲染时就可以从子组件拿数据来渲染.

 
       
 
       

作用域插槽会被解析为一个传入了slotProps作参的函数:

 
       

所以, 父组件中v-slot: 的值实际上可以是任何 [能作为函数的参数来传入] 的东西;


 
        
 
        

这样我们有三个标签页了:
在这里插入图片描述

 
        
 
        

就可以正常呈现了:
在这里插入图片描述
在这里插入图片描述


注意 v-slot 只能添加在 < template> 上, 不然会标红;

(现在是22年4月22, 我刚做完我的个人网站, 回来说一句, 不封装实在是——太乱了代码很多,就算复制粘贴下来到别处还要改属性改参数改样式,主要是还要改样式,老天!做了三个页面我就开始封装了。)

以上是我据本阶段的学习得出的一些经验与心得,如果帮到了您,在下十分荣幸;若是您发现了不足,您可以在评论区指出, 我会感谢您的指点的!

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

版权声明


相关文章:

  • map转换为jsonobject(map转换为bean)2026-01-24 21:00:05
  • pcie5.0电源线(pcie5.0电源线能给3070ti供电吗?)2026-01-24 21:00:05
  • cjson库输出json文件(jsonobject输出)2026-01-24 21:00:05
  • plsql7.15注册码(plsql注册码永久 14)2026-01-24 21:00:05
  • junit5下载(junit4.12下载)2026-01-24 21:00:05
  • vue路由守卫作用(vue3.0路由守卫)2026-01-24 21:00:05
  • redhat6.10安装教程(redhat6.2安装教程)2026-01-24 21:00:05
  • vue安装教程(vue安装步骤)2026-01-24 21:00:05
  • ubuntu镜像源安装(ubuntu20.04 镜像源)2026-01-24 21:00:05
  • jsjs是哪里的烟草代码(jsjs是哪个地区的烟草)2026-01-24 21:00:05
  • 全屏图片