vue子组件调用父组件方法_学习 Vue 的组件使用作用域插槽的方法【21】

d8701722fdd62371ddd26ef6c090fbf3.gif

学习要点:1.作用域插槽

本节课我们来开始学习 Vue 的组件使用作用域插槽的方法。

一.作用域插槽

1. 对于具名插槽,除了使用指令 v-slot 来进行调用,还支持#号的简写方式;

-a v-bind:text="message" #header>导航

46603a610409b2fd6c58afad24df20b6.png

2. 由于父子组件之间是存在作用域的,它们的模版内容只能在自己作用域编译;

3. 作用域的问题导致我们使用插槽时,无法通过父组件区域直接访问子组件内容;

<div id="app">  <html-a v-bind:text="message">html-a>div><template id="html-a">  <div>    <span>{{text}}span>    <slot>{{obj.name}}slot>  div>template><script>'html-a' : {  data() {    return {      obj : {        id : 1001,        name : 'Mr.Lee'      }    }  },  template : '#html-a',  props : ['text']}script>

4. 上面的例子中,如果在中使用{{obj.id}}来替换掉插槽会如何?

-a v-bind:text="message">{{obj.id}}-a>

PS:作用域的问题,非子组件模版是无法获取到 obj 这个对象数据的;

5. 这个时候,系统提供了作用域插槽来解决这个问题,我们看来下面代码:

<div id="app">  <html-a v-bind:text="message" v-slot:default="slotProps">    {{slotProps.obj.id}}  html-a>div><template id="html-a">  <div>    <span>{{text}}span>    <slot v-bind:obj="obj">{{obj.name}}slot>  div>template>

PS:我们通过给插槽 增加一个 v-bind 来创建一个 props(插槽 props);

PS:此时,父级模板中,就可以使用 v-slot 指令去获取子组件的数据;

6. 对于作用域插槽,还有简写方案:

-a v-bind:text=  {{slotProps.obj.id}}-a>

7. 如果支持 ES6(es2015),我们还可以对其进行解构操作;

-a v-bind:text=  {{user.id}}-a>

22cdaea8415ed6a413f6e4e7c068c75d.png

如果您觉得有用,记得在下方点赞、关注、留言,小编会定期奉上更多的惊喜哦,您的打赏支持才是小编继续努力的动力,么么哒。

每日分享在学习过程中总结的学习经验,学习笔记,笔试题,HTML,CSS,JavaScript,jQuery教程,Vue教程,PHP教程,TinkPHP教程等,望大家能以学习为目的,每天阅读一篇文章,了解身边的技术,陪有梦想的人一起成长!

ed7e2fba4f283af76f27fd2f0aa34c2e.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值