返回顶部
首页 > 资讯 > 精选 >使用vue的作用域插槽的原因是什么?
  • 175
分享到

使用vue的作用域插槽的原因是什么?

2023-06-14 18:06:23 175人浏览 薄情痞子
摘要

这篇文章主要介绍了使用Vue的作用域插槽的原因是什么,具有一定借鉴价值,需要的朋友可以参考下。下面就和我一起来看看吧。Vue插槽是一种将内容从父组件注入子组件的绝佳方法。下面是一个基本的示例,如果我们不提供父级的任何slot位的内容,刚父级

这篇文章主要介绍了使用Vue的作用域插槽的原因是什么,具有一定借鉴价值,需要的朋友可以参考下。下面就和我一起来看看吧。

Vue插槽是一种将内容从父组件注入子组件的绝佳方法。

下面是一个基本的示例,如果我们不提供父级的任何slot位的内容,刚父级<slot>中的内容就会作为后备内容。

// ChildComponent.vue<template>  <div>     <slot> Fallback Content </slot>  </div></template>

然后在我们的父组件中:

// ParentComponent.vue<template>   <child-component>      Override fallback content   </child-component></template>

编译后,我们的DOM将如下所示。

<div> Override fallback content </div>

我们还可以将来自父级作用域的任何数据包在在 slot 内容中。 因此,如果我们的组件有一个名为name的数据字段,我们可以像这样轻松地添加它。

<template>   <child-component>      {{ text }}    </child-component></template><script>export default {   data () {     return {       text: 'hello world',     }   }}</script>

为什么我们需要作用域插槽

我们来看另一个例子,假设我们有一个ArticleHeader组件,data 中包含了一些文章信息。

// ArticleHeader.vue<template>  <div>    <slot v-bind:info="info"> {{ info.title }} </slot>  </div></template><script>export default {  data() {    return {      info: {        title: 'title',        description: 'description',      },    }  },}</script>

我们细看一下 slot 内容,后备内容渲染了 info.title

在不更改默认后备内容的情况下,我们可以像这样轻松实现此组件。

// ParentComponent.vue<template>  <div>    <article-header />  </div></template>

在浏览器中,会显示 title

使用vue的作用域插槽的原因是什么?

虽然我们可以通过向槽中添加模板表达式来快速地更改槽中的内容,但如果我们想从子组件中渲染info.description,会发生什么呢?

我们想像用下面的这种方式来做:

// Doesn't work!<template>  <div>    <article-header>        {{ info.description }}    </article-header>  </div></template>

但是,这样运行后会报错 :TypeError: Cannot read property ‘description’ of undefined

这是因为我们的父组件不知道这个info对象是什么。

那么我们该如何解决呢?

引入作用域插槽

简而言之,作用域内的插槽允许我们父组件中的插槽内容访问仅在子组件中找到的数据。 例如,我们可以使用作用域限定的插槽来授予父组件访问info的权限。

我们需要两个步骤来做到这一点:

  • 使用v-bindslot内容可以使用info

  • 在父级作用域中使用v-slot访问slot属性

首先,为了使info对父对象可用,我们可以将info对象绑定为插槽上的一个属性。这些有界属性称为slot props

// ArticleHeader.vue<template>  <div>    <slot v-bind:info="info"> {{ info.title }} </slot>  </div></template>

然后,在我们的父组件中,我们可以使用<template>v-slot指令来访问所有的 slot props。

// ParentComponent.vue <template>  <div>    <child-component>      <template v-slot="article">      </template>    </child-component>  </div></template>

现在,我们所有的slot props,(在我们的示例中,仅是 info)将作为article对象的属性提供,并且我们可以轻松地更改我们的slot以显示description内容。

// ParentComponent.vue <template>  <div>    <child-component>      <template v-slot="article">        {{ article.info.description }}      </template>    </child-component>  </div></template>

最终的效果如下:

使用vue的作用域插槽的原因是什么?

总结

尽管Vue 作用域插槽是一个非常简单的概念-让插槽内容可以访问子组件数据,这在设计出色的组件方面很有用处。 通过将数据保留在一个位置并将其绑定到其他位置,管理不同状态变得更加清晰。

以上就是使用vue的作用域插槽的原因是什么的详细内容了,看完之后是否有所收获呢?如果想了解更多相关内容,欢迎来编程网精选!

原文地址:https://learnvue.co/2021/03/when-why-to-use-vue-scoped-slots/

--结束END--

本文标题: 使用vue的作用域插槽的原因是什么?

本文链接: https://lsjlt.com/news/274236.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 使用vue的作用域插槽的原因是什么?
    这篇文章主要介绍了使用vue的作用域插槽的原因是什么,具有一定借鉴价值,需要的朋友可以参考下。下面就和我一起来看看吧。Vue插槽是一种将内容从父组件注入子组件的绝佳方法。下面是一个基本的示例,如果我们不提供父级的任何slot位的内容,刚父级...
    99+
    2023-06-14
  • vue作用域插槽有什么用
    这篇文章给大家分享的是有关vue作用域插槽有什么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。作用域插槽利用好作用域插槽可以做一些很有意思的事情,比如定义一个基础布局组件A,只...
    99+
    2024-04-02
  • Vue作用域插槽怎么使用
    今天小编给大家分享一下Vue作用域插槽怎么使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。简单的展示列表现在我们做一个纯展...
    99+
    2023-07-04
  • Vue具名插槽+作用域插槽的混合使用方法
    vue + elementui 的项目中,通过后端返回的数据动态封装表单组件。 其中有些场景: 1、有些下拉框是联动的,例如前面的一个下拉框选择值之后,后一个下拉框才根据前面的下拉框...
    99+
    2024-04-02
  • Vue插槽Slot的作用是什么及怎么使用
    本篇内容介绍了“Vue插槽Slot的作用是什么及怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!插槽Slot插槽Slot的作用初识插槽...
    99+
    2023-07-04
  • Vue默认插槽,具名插槽,作用域插槽定义及使用方法
    目录一、三种插槽的定义1.默认插槽2.具名插槽3.作用域插槽二、使用方法1.默认插槽2.具名插槽3.作用域插槽应用场景: 插槽的作用是在子组件中某个位置插入父组件的自定义html结构...
    99+
    2024-04-02
  • Vue插槽的作用
    目录1. 默认插槽2. 具名插槽3. 作用域插槽1. 默认插槽 概述: 当子组件模板只有一个没有属性的插槽时,父组件传入的整个内容片段将插入到插槽所在的 DOM 位置,并替换掉插槽标...
    99+
    2024-04-02
  • Vue作用域插槽的示例分析
    这篇文章主要介绍Vue作用域插槽的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!作用域插槽不是那么直观的一个概念。Vue文档使用了一段描述性的话来解释作用域插槽:有的时候你希...
    99+
    2024-04-02
  • Vue插槽slot使用的方法是什么
    这篇文章主要介绍“Vue插槽slot使用的方法是什么”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Vue插槽slot使用的方法是什么”文章能帮助大家解决问题。何为插槽我们都知道在父子组件间可以通过v...
    99+
    2023-07-05
  • Vue插槽的实现原理是什么
    这篇文章主要介绍“Vue插槽的实现原理是什么”,在日常操作中,相信很多人在Vue插槽的实现原理是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Vue插槽的实现原理是什么”的疑惑有所帮助!接下来,请跟着小编...
    99+
    2023-06-20
  • Vue.js slot插槽的作用域插槽用法详解
    目录没有插槽的情况Vue2.x 插槽有插槽的情况具名插槽没有slot属性插槽简单实例应用作用域插槽 ( 2.1.0 新增 )Vue3.x 插槽插槽作用域插槽没有插槽的情况 <...
    99+
    2024-04-02
  • Vue插槽是什么及怎么使用
    今天小编给大家分享一下Vue插槽是什么及怎么使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。什么是插槽插槽就是子组件中的提...
    99+
    2023-07-05
  • vue中作用域插槽的示例分析
    小编给大家分享一下vue中作用域插槽的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!具体如下:<child>...
    99+
    2024-04-02
  • Vue中匿名、具名和作用域插槽有什么用
    这篇文章给大家分享的是有关Vue中匿名、具名和作用域插槽有什么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。Vue 中的插槽在开发组件的过程中其实是非常重要并且好用的。Vue ...
    99+
    2024-04-02
  • 关于VUE的编译作用域及slot作用域插槽问题
    什么是插槽?插槽的指令为v-slot,它目前取代了slot和slot-scope,插槽内容,vue实例一套内容分发的api,将slot元素作为承载分发内容的出口。 插槽分为单个插槽,...
    99+
    2024-04-02
  • Vue中的插槽是什么及怎么用
    这篇文章主要介绍了Vue中的插槽是什么及怎么用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Vue中的插槽是什么及怎么用文章都会有所收获,下面我们一起来看看吧。在 Vue 中,插槽是个很强大的功能,它可以使封装...
    99+
    2023-06-30
  • Vue中的插槽怎么使用
    这篇“Vue中的插槽怎么使用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Vue中的插槽怎么使用”文章吧。默认插槽首先做一个...
    99+
    2023-06-30
  • Vue组件之作用域插槽的示例分析
    小编给大家分享一下Vue组件之作用域插槽的示例分析,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!写作用域插槽之前,先介绍一下Vue中的slot内容分发:如果<child-compon...
    99+
    2024-04-02
  • Vue中的匿名插槽与具名插槽是什么
    这篇文章将为大家详细讲解有关Vue中的匿名插槽与具名插槽是什么,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。slot又名插槽,是Vue的内容分发机制,组件内部的模板引擎使用slot元素作为承载分发内容的出...
    99+
    2023-06-21
  • 浅析Vue中插槽Slot的作用和具名插槽
    一、插槽Slot1.1.插槽Slot的作用⭐⭐ 初识插槽:为了让这个组件具备更强的通用性,我们不能将组件中的内容限制为固定的div、span等等这些元素;【相关推荐:vuejs视频教程】比如某种情况下我们使用组件,希望组件显示的是一个按钮,...
    99+
    2022-11-22
    Vue vue3 vue.js 插槽
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作