vue slot作用域插槽,v-slot插槽

  vue slot作用域插槽,v-slot插槽

  本文主要介绍Vue插槽的使用。生活中很多地方都有插槽,比如电脑usb插槽,插线板的电源插槽。插槽的目的是让我们原有的设备更具扩展性,比如电脑USB。我们可以插u盘,手机,鼠标,键盘等。下面的文章将介绍Vue插槽是如何使用的。

  :

目录

   1.为什么要用slot?

  1.1 slot 1.2组件1.3中的slots例2,如何封装这种组件3,Slot case 4,Slot默认值5,命名slot 6,编译作用域7,作用域Slot。

  

1、为什么使用slot

  

1.1 slot(插槽)

  生活中很多地方都有插槽,电脑usb插槽,插线板电源插槽。

  插槽的目的是使我们的原始设备更具可扩展性。

  比如电脑的USB可以插u盘,手机,鼠标,键盘等等。

  

1.2 组件中的插槽

  组件插槽也是为了使我们的组件更具可伸缩性而设计的。

  让用户决定组件中的某些内容显示什么。

  

1.3 例子

  在移动开发中,几乎每个页面都有一个导航栏。

  我们必须将导航栏封装成一个插件。

  一旦我们有了这个组件,我们就可以在多个页面中重用它。

  

2、如何封装这类组件(slot)

  最好的封装方法是把共性提取成组件,把不同的部分暴露成槽。

  一旦我们保留了插槽,我们就可以让用户根据自己的需要决定将什么插入插槽。

  无论是搜索框、文本还是按钮,都由调度员决定。

  

3、 插槽的案例

  div id=应用程序

  按钮按钮/按钮/cpn

  cpnphello world/p/cpn

  cpnp666/p/cpn

  /div

  模板id=cpn

  差异

  H2我是组件/h2。

  //槽的预留位置方便用户填写。

  插槽/插槽

  /div

  /模板

  脚本src=./js/vue.js/script

  脚本

  const app=new Vue({

  埃尔: #app ,

  组件:{

  cpn :

  模板:`#cpn `,

  }

  }

  })

  /脚本

  上述代码干了以下事情:

  1.定义子组件cpn,然后在子组件中预留一个槽,槽的内容由用户填充。

  2.父组件使用了三个子组件,这三个子组件在插槽中填充了不同的内容。

  最后展示效果如下:

  

4、插槽默认值

  如果我们需要大量使用这个组件,并且组件预留的大部分槽位都是由后退按钮填充的,只有少数其他的被填充,那么在这种情况下可以为槽位设置一个默认值。

  div id=应用程序

  cpn/cpn

  cpn/cpn

  cpn/cpn

  /div

  模板id=cpn

  差异

  槽按钮返回/按钮/槽

  /div

  /模板

  我们在子组件中设置了一个带有back按钮默认值的slot,所以如果父组件在使用时没有填充任何东西,默认值就是back按钮。

  

5、具名插槽

  有时我们需要多个插槽。例如对于一个带有如下模板的组件:

  模板id=cpn

  差异

  slot name= header span header/span/slot

  slot name= main span middle/span/slot

  Slot name= footer页脚/span/slot

  /div

  /模板

  我们在组件中保留了三个插槽,但是这里我们指定了三个名称。用v-slot指定name属性后,后续的父组件可以填充自己的内容,如下面的代码

  div id=应用程序

  CCSDS主网(CCSDS Principle Net的缩写)

  模板v型槽:标题

  p页眉/p

  /模板

  模板v形槽:页脚

  p页脚/p

  /模板

  /cpn

  /div

  使用cpn组件,然后指定槽名属性为header和footer的内容。指定后,自己填写的内容将替换默认内容。

  注意:这里的语法格式是固定的,v-slot:插槽的名称必须绑定在使用模板标签上。

  

6、编译作用域

  将来使用插槽时,不能使用从外部传递给组件的变量。

  div id=应用程序

  v-show=isShow/cpn

  /div

  模板id=cpn

  phello/p

  /模板

  脚本src=./js/vue.js/script

  脚本

  const app=new Vue({

  埃尔: #app ,

  数据:{

  isShow:没错

  },

  组件:{

  cpn :

  模板:`#cpn `,

  data(){

  返回{

  isShow: false

  }

  }

  }

  }

  })

  /脚本

  上面我们已经定义了子组件cpn,它的属性是isShow,属性isShow也是在app实例中定义的。最后,当使用子组件cpn时,使用v-show,当值为true时显示。false值不会显示问题:v-show中的isShow值在实例中是true还是在子组件中是false。答案:为真,因为使用时你在app实例的范围内,isShow会在实例中查找数据,虽然你绑定在cpn子组件中。但是,你只需要把这里的cpn当成一个普通的标签。如果希望isShow的值为false,那么只需要在子组件的模板template中使用p v-show=isShowhello/p。

  

7、作用域插槽

  默认槽中的代码只能使用全局Vue中的属性。如果要使用自定义组件中的属性,需要在定义slot时使用v-bind进行绑定。

  div id=应用程序

  CCSDS主网(CCSDS Principle Net的缩写)

  模板v-slot:default=slot

  {{slot.data.firstName}}

  /模板

  /cpn

  /div

  模板id=cpn

  差异

  插槽:数据=用户

  {{user.lastname}}

  /插槽

  /div

  /模板

  脚本src=./js/vue.js/script

  脚本

  const app=new Vue({

  埃尔: #app ,

  组件:{

  cpn :

  模板:`#cpn `,

  data(){

  返回{

  用户:{

  名字: A ,

  姓氏:壳虫

  }

  }

  }

  }

  }

  })

  /脚本

  上述代码做了如下几件事情:

  1.定义了子组件cpn,其中定义了用户。

  2.属性数据被绑定在子组件cpn的模板的槽中,槽的缺省值是user.lastname

  3.html中使用子组件,slot Prop对象通过v-slot绑定,这样就可以通过子组件中绑定的对象名和属性名(slot.data)来访问子组件中的数据。

  关于Vue槽的使用细节这篇文章就讲到这里。关于Vue slot使用的更多信息,请搜索我们以前的文章或继续浏览下面的相关文章。希望大家以后能多多支持我们!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: