Vue中插槽的作用_Vue组件插槽的使用以及调用组件内的方法
前端  /  管理员 发布于 6年前   562
插槽
插槽,也就是slot,是组件的一块html模板,这块模板显示不现实、以及怎样显示由父组件来决定。插槽模板是slot,它是一个空壳子,因为它显示与隐藏以及最后用什么样的html模板显示由父组件控制。
但是插槽显示的位置由子组件自身决定,slot写在组件template的哪块,父组件传过来的模板将来就显示在哪块。这样就使组件可复用性更高,更加灵活。我们可以随时通过父组件给子组件加一些需要的东西。
通过给组件传递参数, 可以让组件变得更加可扩展, 组件内使用props接收参数
export default { props: ['options'], data(){ return {} }}
但是这个方法有局限性, 例如我写了一个对话框组件, 对话框的内容是自定义的
如果我只是显示文字的话, 我可以简单的将字符串传进去props: ['message']
但是如果需要在其中添加一个按钮的话, 这种方法就显得很笨重了, 所以我们用另一种办法 插槽
slot的使用就像它的名字一样, 在组件内定义一块空间, 取名为slotA
<div class="dialog"> 我是对话框 <slot name="slotA"></slot></div>
在组件外, 我们可以往插槽里填入任何元素, dialog-a为组件的名称
<dialog-a :options="hello"> <template slot="slotA"> <button>按钮</button> // ... 可以是任何元素 </template></dialog-a>
前面讲的只是实现往组件内加入元素, 但是并没有和组件的数据有任何的交互
slot-scope的作用就是把组件内的数据带出来
<div class="dialog"> 我是对话框<br> {{message}} <slot name="slotA" :message="message"></slot></div>
在组件外就可以得到其中的message
<dialog-a :options="hello"> <template slot="slotA" slot-scope="scope"> <button>{{scope.message}}</button> </template></dialog-a>
使用this.$refs找到组件后, 就可以调用其中methods中的方法
<dialog-a ref="dialogA"></dialog-a>test(){ this.$refs.dialogA.func()}
122 在
学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..123 在
Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..原梓番博客 在
在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..博主 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..1111 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
Copyright·© 2019 侯体宗版权所有·
粤ICP备20027696号