欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2022-06-07 14:20:48
Slot v-slot 插槽元素 浏览器在解析时候首先把它当作标签来解析,只有遇到不认识的就不管了,直接跳过,当你发现是组件,在以组件形式解析。 使用插槽的好处? 比如一个网站 分布顶部都是一样的,如果使用组件,要写好几个导航组件。我只写一个导航组件,然后让插值里面东西去覆盖内容 就可以了。 * 在 ......

slot  v-slot 插槽元素

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

使用插槽的好处?

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

 

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

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

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

 

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

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

子组件:                                           父组件:

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

 

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

<myhead></myhead>

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

  

3. 具名插槽

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

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

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

 

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

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

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

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

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

 

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

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

 vue学习指南:第九篇(详细) - Vue的 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

 

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