成都创新互联网站制作重庆分公司

vue组件中的slot插口如何用

这篇“vue组件中的slot插口如何用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“vue组件中的slot插口如何用”文章吧。

成都创新互联专注于无极网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供无极营销型网站建设,无极网站制作、无极网页设计、无极网站官网定制、重庆小程序开发公司服务,打造无极网络公司原创品牌,更为您提供无极网站排名全网营销落地服务。

子组件




  父组件



这种情况是如果要父组件在子组件中插入内容 ,必须要在子组件中声明slot 标签  ,如果子组件模板不包含插口,父组件的内容

{{msg}}

将会被丢弃。

 当slot存在默认值

默认值

,且父元素在中没有要插入的内容时,会显示

默认值

(p标签会去掉),当slot存在默认值,且父元素在中存在要插入的内容时,则显示父组件中设置的值,

具名slot

元素可以用一个特殊的属性 name 来配置如何分发内容。多个 slot 可以有不同的名字。具名 slot 将匹配内容片段中有对应 slot 特性的元素

var childNode = {
 template: `
 
 

子组件

 头部默认值  主体默认值  尾部默认值  
 `, }; var parentNode = {  template: `    

父组件

   我是头部

 我是尾部

 
 
 `,  components: {  'child': childNode  }, };

vue组件中的slot插口如何用

仍然可以有一个匿名 slot,它是默认 slot,作为找不到匹配的内容片段的备用插槽。匿名slot只能作为没有slot属性的元素的插槽,有slot属性的元素如果没有配置slot,则会被抛弃

var childNode = {
 template: `
 
 

子组件

 主体默认值    
 `, }; var parentNode = {  template: `    

父组件

   我是主体

 

我是其他内容

 我是尾部

 
   `,  components: {  'child': childNode  }, }; 插入中,

我是其他内容

插入中,而被丢弃

vue组件中的slot插口如何用

如果没有默认的 slot,这些找不到匹配的内容片段也将被抛弃

var childNode = {
 template: `
 
 

子组件

 主体默认值    `, }; var parentNode = {  template: `    

父组件

   我是主体

 

我是其他内容

 我是尾部

 
   `,  components: {  'child': childNode  }, };

我是其他内容

都被抛弃

vue组件中的slot插口如何用

作用域插槽

作用域插槽是一种特殊类型的插槽,用作使用一个 (能够传递数据到) 可重用模板替换已渲染元素。

在子组件中,只需将数据传递到插槽,就像将 props 传递给组件一样


 

在父级中,具有特殊属性 scope 的      `,  components: {  'child': childNode  }, };

如果渲染以上结果,得到的输出是

vue组件中的slot插口如何用

【列表组件】

作用域插槽更具代表性的用例是列表组件,允许组件自定义应该如何渲染列表每一项

var childNode = {
 template: `
 
     默认值  
 `,  data(){  return{  items:[  {id:1,text:'第1段'},  {id:2,text:'第2段'},  {id:3,text:'第3段'},  ]  }  } }; var parentNode = {  template: `    

父组件

     
  • {{ props.text }}
  •    
       `,  components: {  'child': childNode  }, };

    vue组件中的slot插口如何用 

    以上就是关于“vue组件中的slot插口如何用”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注创新互联行业资讯频道。


    分享名称:vue组件中的slot插口如何用
    文章起源:http://cxhlcq.com/article/jpeocj.html

    在线咨询

    微信咨询

    电话咨询

    028-86922220(工作日)

    18980820575(7×24)

    提交需求

    返回顶部