问题标签 [vue-dynamic-components]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
202 浏览

vue.js - 如何将静态组件附加到 Vue 中的动态组件?

我想要实现的是:我有一个带孩子的<v-window>父组件。<v-window-item>第一个子循环通过一个返回对象并根据其内容动态可视化卡片的 Vuex getter。但是,我有另一个类似于摘要的静态组件,其中包含一个注销按钮,我想将其附加到<v-window>从商店生成的最后一个动态中。到目前为止,这是我设置代码的方式:

有人可以给我一些关于如何实现这一目标的指示吗?提前致谢!

0 投票
1 回答
81 浏览

javascript - 如何通知父组件在 Vue 动态组件中发生了某些事情?

我有一个 Vue 组件,它生成一个动态组件,并且在该动态组件中是一个用于进行 Ajax 调用的按钮的单击处理程序。在成功完成 Ajax 调用后,我想通知生成动态组件的组件 Ajax 调用已完成。我怎么做?

有问题的代码的基本结构如下:

我最初的想法是this.$emit('btnClicked', 'data-here')在 Ajaxsuccess回调中做,但是当我尝试在方法调用的部分或方法调用中附加一个@btnClicked事件处理程序时,我得到一个 Vue 错误。content-componenttemplateVue.componentVue.compile

基本上,我不知道该怎么做。动态组件中的this上下文肯定是不同的,所以我不能只是给父组件添加一个数据属性,然后在动态组件的Ajax回调中设置。我试过了,但它不起作用。

我相信有一种简单的方法可以做到这一点,但老实说,我不确定如何做。任何帮助将不胜感激。谢谢你。


编辑:值得注意的是,我试图将动态组件视为父组件的常规子组件。因此,我this.$emit('btnClicked')在 Ajaxsuccess回调中添加了一个调用,然后@btnClickedcontent-component.

也许我只是做错了,但我尝试了以下两种方法:

但似乎两者都不起作用。谢谢。

0 投票
1 回答
89 浏览

javascript - vue动态组件,重复信息

我有一个列表,如果您单击打开它并列出子列表,则发出请求 ajax 以加载数据并绘制子列表,执行此工作的组件是相同的,是递归的并加载到子列表中通过动态组件,问题在于当您加载第二个列表的子项时。并打开第三个这些重复。

树图片

像这样的https://codepen.io/anthonygore/pen/PJKNqa?editors=1010,但每个项目都是对 api 的调用

0 投票
4 回答
8237 浏览

vue.js - Vue/Nuxt:如何让组件真正动态化?

为了使用动态定义的单页组件,我们使用component标签,因此:

问题是,这根本不是非常动态的,因为我们可能想在这里使用的每个组件不仅需要静态导入,而且还需要注册到components.

我们尝试这样做,至少是为了避免需要导入所有内容:

但当然这失败了,因为它似乎DynamicComponent必须在到达之前定义created()

我们如何才能使用真正动态的组件,即在运行时导入和注册,只给出它的名称?

0 投票
0 回答
37 浏览

vue.js - Vue - 补间未创建的组件

我有一个基于 json 对象呈现的动态组件。

车辆类型是可以是汽车、摩托车或卡车的组件。本质上,这就是应该呈现的内容。

我遇到的问题是因为这些是动态组件,它们不使用 css 类或 vue 进行补间$refs

我试过使用$nextick()and $forceUpdate(); 但补间不会触发。它看起来像是反应性警告之一。在旧的 jquery 时代,我认为 defer 会修复它。

有没有办法通过 ? 使动态组件可用$refs

使用的补间引擎是gsap

0 投票
1 回答
897 浏览

vue.js - 如何创建一个动态 vue 组件,该组件的计算模板包含另一个具有 Object 属性的组件,而不将其作为字符串传递

我有一个这样的组件:

关系.vue

奇怪的服务.js

入口.vue

innerText 属性决定了组件将如何呈现,并且它可以通过将其 @ 插槽置于任何位置来一直更改。在这个例子中,结果是:

这是有效的,因为Entry组件具有作为entry类型的属性,String但我必须JSON.stringify()在 side 中输入对象weirdService,然后在Entry组件中我必须JSON.parse()使用字符串才能取回真实对象。我怎样才能使上述工作,以便我将一个对象直接传递给一个动态模板,这样我就可以一直避免序列化和反序列化。

顺便说一句,要使其工作 runtimeCompiler 需要在 vue.config.js 中启用:

我知道我可以使用 JSX 返回包含对象的组件,但这仅在 render() 函数中允许,而不是像我这样的自定义函数。

谢谢!!

0 投票
1 回答
422 浏览

vue.js - 同一组件之间的过渡?

我还有一个按钮来更改当前索引和更新组件的数据。这不起作用,我认为这是因为更改数据不会使其成为触发转换所需的新组件。

我在网上看到的所有示例都是用于在不同组件之间切换,这项工作但我无法应用它,因为它们都是针对同一个组件的。

我发现的另一个解决方案是在 v-for 中创建一堆组件,然后在当前组件上显示一个 v-show,但是我需要绝对定位来防止过渡跳跃,这似乎不是这样做的方法它。

我想我可以在更新函数的脚本标签或其他东西中进行转换,但是当转换应该为我处理这个时,这似乎是错误的方式。我是不是错过了什么。

0 投票
1 回答
19 浏览

vue.js - 我想在运行时将 vue js 组件添加到我的 webapp。我怎样才能做到最好?

我想要一个 vue js Web 应用程序,用户可以在其中添加新组件。我希望这些组件在运行时编译并添加到 dist 文件夹中,这样系统就可以轻量级了。然后用户可以看到他们所做的更改,而无需重新启动系统。刷新是可能的,但不是最佳的。我对 vue.js 没有那么丰富的经验,所以我不知道从哪里开始,我应该使用什么......

如果您有任何想法,请随时回答提前谢谢

0 投票
1 回答
2479 浏览

javascript - 运行时动态加载Vue单文件组件

我们有一个 Vue 应用程序,并希望允许第三方创建插件。我们希望插件以 Vue 单文件组件的形式构建。

在运行时,最终用户会选择一个插件添加到应用程序中。该应用程序将获取纯文本 .vue 文件,即时编译它,并将其显示在应用程序中。

Vue 支持动态和异步组件,但这些组件需要提前编译到应用程序中。我们想做同样的事情,除了动态加载代码。

我怎样才能使这项工作?

这是我到目前为止所得到的:

(我修改了构建,因此存在 vue-template-compiler。)

上面的代码会产生这个错误:

我猜想无论 parseComponent() 产生什么都不<component>是我们想要的。

0 投票
1 回答
194 浏览

javascript - 从 VueJS + Vuex 中的父组件访问动态组件内的数据

我创建了这个演示来更好地解释我的目标:https ://codepen.io/Albvadi/pen/OJMgByR

每个按钮都会创建一个新警报,在组件数组的 vuex 存储中创建一个对象。通过该component属性,我知道要渲染的组件的类型。

每个警报都会在组件内的数据属性中生成一个随机字符串。如何配置与 Vuex 的连接以从全局组件数组中的子警报组件获取数据?

谢谢!