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

vue 插槽(vue 插槽嵌套)



在使用组件时,在引用的组件标签添加内容时,会自动被组件中的模板代替,如【例1】

【例1】

 
  
 
  

【结果】

当不想要传递给组件的内容被替代,则可以使用组件插槽解决这个问题,具体使用方法是,在组件模板中添加 标签,当组件渲染时, 将会被替换为“写在组件标签结构中的内容”,如【例2】

【例2】

 
  

【结果】

 【注】

  1. 插槽内可以包含任何模板代码,包括 HTML 和其他组件
  2. 如果组件没有包含 元素,则该组件起始标签和结束标签之间的任何内容都会被抛弃

因为父级模板里的所有内容都是在父级作用域中编译的,子模版里的所有内容都是在子作用域中编译的,所以插槽不能访问其所在组件的作用域,而是模板的作用域,如【例3】

【例3】

 
  
 
  

【结果】

默认插槽即,若在组件引用时,没有像其传递内容,则使用默认插槽的内容(也称为后备内容);若在引用时,传递了内容,则渲染传递的内容,如【例4】

【例4】

组件

 
  

未传递内容

 
   

【结果】

传递内容

 
   

【结果】

(1)具名插槽使用

若在一个组件中需要使用多个插槽,则要使用具名插槽来区分,其使用方式为:在组件中的  元素上使用一个特殊的特性 name,利用这个特性可以定义额外的插槽;在引用组件时,需要在

【注】一个不带name的 会带有隐含的名字“default”。

【例5】

 
  
 
  

 【结果】

【注】v-slot 只能添加在

(2)具名插槽的缩写

 
  

【注】该缩写只有在其有参数时可以使用 

为了能够让插槽内容访问子组件的数据,可以将子组件的数据作为绑定在 元素的一个特性(插槽 prop),则在父级作用域中,可以给v-slot带一个值来定义所提供的插槽 prop 名字,如【例6】

【例6】

 
  
 
  

 【结果】

(1)独占默认插槽的缩写语法

当被提供的内容只有默认插槽时,组件的标签可以被当作插槽的模板来使用,此时,可以将 v-slot 直接用在组件上,且可以缩写为以下形式:

 
  

【注】默认插槽的缩写语法不能和具名插槽混用,会导致作用域不明确,即只要出现多个插槽,就需要为所有的插槽使用完整的基于

(2)解构插槽 Prop

使用结构传入具体的插槽prop会使模板更简洁

 
  

根据解构的语法,还可以给 prop 重命名

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

                            

版权声明


相关文章:

  • ubuntu安装cmake教程(ubuntu16.04安装cmake)2026-03-27 07:09:05
  • pcie5.0电源和ATX3.0(pcie4.0供电)2026-03-27 07:09:05
  • PCIe5.0显卡插槽(pcie5.0显卡插槽能上pcie3.0卡吗)2026-03-27 07:09:05
  • 时钟的代码(时钟代码js)2026-03-27 07:09:05
  • dos 6.22安装(dos 7.1安装教程)2026-03-27 07:09:05
  • jsjsj是什么意思(萌新想问一下js是什么意思啊)2026-03-27 07:09:05
  • vue 具名插槽(vue具名插槽的好处)2026-03-27 07:09:05
  • js数组方法some(js数组方法改变原数组)2026-03-27 07:09:05
  • vue的路由守卫有哪些钩子函数(vuerouter的路由守卫)2026-03-27 07:09:05
  • pcie5.0速度已经超过内存速度了吗(pcie 4.0速度)2026-03-27 07:09:05
  • 全屏图片