Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Vue插槽:如何解析然后呈现槽组件

Vue插槽:如何解析然后呈现槽组件
EN

Stack Overflow用户
提问于 2018-10-01 15:43:04
回答 1查看 4.3K关注 0票数 2

目前正在Vue中构建一个网页,并且遇到了一些问题解析,然后呈现<slot>的子组件。

我需要能够接受插槽,将组件解析成数组,然后为最终用户呈现这些组件。

我试过的

我尝试了很多不同的东西,大多数都是从以下几个方面开始的:this.$slots.default

这是我最后一次尝试

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
let slotComponents = [];
this.$slots.default.forEach(vNode => {
  slotComponents.push(vNode);
});

但是,我也尝试选择vNode中的元素,并使用$childeren之类的东西来选择组件。到目前为止还没有运气。

潜在问题

原因可能有很多,但我认为是这样的(按顺序)

  1. 我无法正确地将组件放入数组中
  2. 我没有正确地渲染它们或者遗漏了一些关于它们如何呈现的东西
  3. 不应该这么做吗?

编辑-上下文

如果我告诉你我的具体问题的全部情况,那就容易多了。

目标

若要创建动态选项卡组件,请执行以下操作。应该是这样的。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
// Example of component use
<tab-container>
  <tab>
    <!-- Tab Content -->
  </tab>
  <tab>
    <!-- Tab Content -->
  </tab>
  <tab>
    <!-- Tab Content -->
  </tab>
  <trash>
    <!-- This one won't show up -->
  </trash>
</tab-container>

为了解析这些内容,我需要取出槽数据。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
// Inside the <tabs-container> component
computed: {
  tabs: function() {
        let tabs = []
        this.$slots.default.forEach(vNode => {
            tabs.push(vNode);
        });
        return tabs;
    }
}


// Inside the <tabs-container> template
<div>
    {{tabs[currentTab]}}
</div>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-10-02 22:56:15

如果要以编程方式在<tab>中呈现<tab-container>,则不应该使用模板和计算属性。模板中的{{}}用于执行JS的基本操作。最合适的方法是使用呈现函数。

呈现函数- Vue文档

下面是一个工作示例,它包含了几个制表符组件,并且只显示了活动选项卡组件:https://jsfiddle.net/ajitid/eywraw8t/403667/

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52600261

复制
相关文章
vue 组件插槽_vue插槽的使用
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/11/09
5820
Vue 组件(四):组件插槽
组件实际上是可以复用的 Vue 实例,它们与 new Vue 接收相同的选项,例如 data、computed、methods 以及生命周期钩子等。 何谓复用?如果把页面看作是组件的容器,那么导航栏、搜索框其实都是可以复用的组件。作为对可重用代码的封装,它们自身具有独立的数据和逻辑。
Chor
2019/11/08
1K0
Vue 组件(四):组件插槽
Vue组件插槽的使用
插槽就是子组件提供给父组件使用的一个占位符,用 <slot></slot> 表示,父组件可以在这个占位符中填充任何模板代码,如:html、组件等,填充的内容会替换到子组件中的 <slot></slot> 标签
很酷的站长
2023/02/17
4290
Vue组件插槽的使用
Vue 组件插槽:父子组件间的内容分发和插槽作用域
在组件入门这篇教程中,学院君已经给大家演示了插槽(slot)功能的基本使用,插槽的主要作用就是在组件中分发父作用域的内容,这个父作用域可以是 Vue 全局容器(可以看作是一个全局的「根组件」),也可以是父组件。
学院君
2023/03/03
2K0
Vue 组件插槽:父子组件间的内容分发和插槽作用域
8.Vue组件三---slot插槽
同样的插线板, 可以插电视机, 电冰箱, 洗衣机 电脑的usb接口, 可以查鼠标, 插键盘, 还可以外接移动硬盘 插槽的扩展性更强.
用户7798898
2021/03/04
1.1K0
8.Vue组件三---slot插槽
vue组件传值与插槽详解
*子组件实例里写props对象,绑定属性,属性里可设置传入的数据类型和无数据传入时的默认值
生南星
2019/07/22
2.2K0
组件插槽
1.组件插槽 组件插槽的作用 父组件向子组件传递内容 组件的最大特性就是复用性,而用好插槽能大大提高组件的可复用能力 1.1组件插槽基本用法   1.插槽位置   2.插槽内容 1.2匿名插槽 <div id="app"> <!-- 这里的所有组件标签中嵌套的内容会替换掉slot 如果不传值 则使用 slot 中的默认值 --> <alert-box>有bug发生</alert-box> <alert-box>有一个警告</alert-box> <al
梨涡浅笑
2022/01/06
4770
组件插槽
VUE2.0 学习(二十七)组件中的插槽,默认插槽,具名插槽,作用域插槽
组件A里面的有一个插槽,并且数据是在A组件里面,B组件是要使用A组件,但是B组件要将A组件里面的数据进行不同的展示,数据是一样的,但是展示的格式是不一样的。这个需要咋做
一写代码就开心
2021/10/28
1.4K0
VUE2.0 学习(二十七)组件中的插槽,默认插槽,具名插槽,作用域插槽
如何使用 Vue 命名插槽创建多个模板插槽?
这是最基本的示例,如果我们不提供父级的任何slot 内容,则我们将<slot>放在其中的任何内容都会作为后备内容。
前端小智@大迁世界
2022/06/15
2.8K0
如何使用 Vue 命名插槽创建多个模板插槽?
组件插槽
组件的最大特性就是复用性,而用好插槽能大大提高组件的可复用能力 匿名插槽 ​ <div id="app"> <!-- 插槽内容--> <!-- 这里的所有组件标签中嵌套的内容会替换掉slot 如果不传值 则使用 slot 中的默认值 --> <alert-box>有bug发生</alert-box> <alert-box>有一个警告</alert-box> <alert-box></alert-box> </div> ​ <script t
星辰_大海
2020/12/07
5490
vue3 如何从槽发出数据
你将一个方法传递到槽中,然后在槽中调用那个方法。您不能发出事件,因为插槽与父组件共享相同的上下文(或作用域)。
公众号---人生代码
2020/09/15
1.8K0
vue组件-template和slot插槽详细介绍
前言 vue项目,组件应用非常广泛,感觉只要能被多个地方复用的代码,都可以写成组件,这样不用做重复的工作。github上面也有很多大牛制造了n个轮子,方便大家使用。之前也有总结过vue组件集合,没有了
Javanx
2019/09/04
8K0
vue组件-template和slot插槽详细介绍
Vue2(四)动态组件 插槽 路由
当<component>展示的组件A被隐藏,而要展示组件B时,通常会直接销毁组件A。下次展示组件A时,再重新创建。在组件A和B要频繁切换的情况,会造成一定的损耗。
CodeGoat24
2022/02/10
1.6K0
Vue2(四)动态组件 插槽 路由
Vue入门基础之组件插槽(slot)使用
组件的内容一般是在子组件中直接声明的,那么我们能不能再父组件进行自己去定义内容进行渲染呢?当然是可以的,slot就提供了极大的便利!下面看一下slot用法! 定义一个cont的组件 Vue.com
十月梦想
2018/10/09
7660
Vue3.0 组件的核心概念_插槽
Vue 在 2.6 版本中,对插槽使用 v-slot 新语法,取代了旧语法的 slot 和 slot-scope,并且之后的 Vue 3.0 也会使用新语法,这并不是仅写法的不同,还包括了性能的提升
Nian糕
2019/06/15
1.7K0
Vue3.0 组件的核心概念_插槽
vue插槽
父组件:(在组件外, 我们可以往插槽里填入任何元素, dialog-a为组件的名称)
leader755
2022/03/09
3830
Vue 插槽
通过在标签内使用slot属性指定值,组件内使用solt标签通过name接收slot属性值
HammerZe
2022/05/09
6930
Vue 插槽
组件插槽(slot)
当我们使用多个插槽时,我们需要区分插槽来使用它,所以,我们可以在 slot标签内加入 name属性来定义,此时有name的插槽叫“具名插槽”,而没有名字的默认插槽叫“匿名插槽”。
摸鱼的G
2023/02/22
5640
day87-Vue基础-组件注册、组件通信、组件混入、组件插槽
01.Vue组件系统之全局组件的注册 <body> <div id="app"></div> </body> <script> // Vue注册组件,固定使用格式 Vue.component("global-component",{ template: `<div> <h3>{{ leon }}</h3> <\div>`, data(){ return {
少年包青菜
2019/12/05
4530
如何使用Vue中的嵌套插槽(包括作用域插槽)
最近我弄清楚了如何递归地实现嵌套插槽,包括如何使用作用域插槽来实现。起因是我想看看是否可以构建一个复制v-for指令但仅使用template组件。
前端小智@大迁世界
2020/05/27
5K0

相似问题

从组件呈现布局中的Vue槽

10

使用Vue槽在基本组件中呈现组件

27

如何用槽扩展Vue组件

11

Vue:如何使用条件槽组件?

11

Vue组件:在插槽中使用插槽

119
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文