资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

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://cdkjz.cn/article/gdeocj.html
    多年建站经验

    多一份参考,总有益处

    联系快上网,免费获得专属《策划方案》及报价

    咨询相关问题或预约面谈,可以通过以下方式与我们联系

    大客户专线   成都:13518219792   座机:028-86922220