vue学习指南:第九篇(详细) - Vue的 Slot-插槽

Slot  v-slot 插槽元素

       浏览器在解析时候首先把它当作标签来解析,只有遇到不认识的就不管了,直接跳过,当你发现是组件,在以组件形式解析。

使用插槽的好处?

比如一个网站 分布顶部都是一样的,如果使用组件,要写好几个导航组件。我只写一个导航组件,然后让插值里面东西去覆盖内容 就可以了。

 

* 在页面渲染的时候,slot元素会被替换成组件标签里面的东西。那这个slot就是哈哈哈。

* 不仅可以直接写内容,还可以套标签。还可以写其它组件。

 

1. 编译作用域 在谁的模板下,组件标签中的数据就是谁的。

<p>{{ name }}</p>   它在实例的模板下,所以是 李四

子组件:                                           父组件:

                  

 

2. 默认内容,组件标签中如果没有内容,在组件模板下<slot></slot>中的内容就是默认内容,如果在组件标签上写了内容,就不去渲染 slot里面的内容

<myhead></myhead>

<slot>哈哈哈哈我好帅</slot> 默认内容

  

3. 具名插槽

1. 为什么叫 具名插槽,就是说明有很多 slot ,每个 slot都有自己的名字。

2. slot 元素有个特殊的特性  :name。这个特性可以用来定义额外的插槽

 

4. 插槽作用域:slot(插槽)在组件模板中,使用数据是当前组件的数据,组件标签在父组件的模板中调用,里面使用的数据是父组件的。

1. 有时候让插槽里面的内容能够访问子组件里的数据是很有用的。

2. 在组件标签中 我想使用子组件的 name 但这个name是实例对象的父组件的,因为组件标签在实例对象模板中。

3。 为了让 user 在父级的插槽使用,我们将 user 作为<slot>插槽元素的一个特性绑定上去。

4. 我们可以给 v-slot 带一个值,来定义我们提供的插槽 prop。

 

需求:组件标签(父组件)使用自己(子组件)组件中的数据?

1. 将子组件的数据绑定到插槽标签 <slot>上

 

 

绑定在 slot 的 u 都存在插槽里的叫 prop 对象,要用 v-slot=“yh” 定义一个 prop对象,这个,yh就是定义 prop对象,而这个对象上存的就是子组件的数据。

绑定在 slot 上的属性,会形成一个 prop对象,用 v-slot 来定义这个prop对象。

2. 在组件标签上用 v-slot = “users” users 就是这个 prop对象了。

{{ users.u }}  就是 user 对应的 “张三” 数据

 

插槽注意点:

* 可以打乱顺序,给名字对应上就可以

* 组件标签里面的 v-slot:xx,后面绑定的名称要和模板里的对应。

* 如果不写 v-slot就不出

 

作者:晋飞翔

 

手机号(微信同步):17812718961

 

希望本篇文章 能给正在学习 前端的朋友 或 以及工作的朋友 带来收获 不喜勿喷 如有建议 多多提议 谢谢!

 

 

posted @ 2019-10-02 16:02  晋飞翔  阅读(824)  评论(0编辑  收藏  举报