javascript - 添加vue组件动态

标签 javascript vue.js

我的 php 应用程序中有一个自定义 vue 组件和一个为其呈现自定义元素的 View 。

<div class="articles">
    {% for a in articles %}
    <budget-article id="{{ a.id }}" name="{{ a.name }}" :amount="{{ a.amount }}" :enable="true"></budget-article>
    {% endfor %}
</div>

ready 事件之后,我将组件添加到主 vue 实例,如下所示:

ready: function () {
    this.$parent.articles.push(this);
}

所以,我有一个组件数组,但所有组件都已经渲染在页面上。

问题是如何向页面添加另一个文章组件?

我认为我可以使用没有模板的组件,并在准备好时将数据推送到主应用程序,但对我来说看起来有点奇怪。所以,我想也许有更好的解决方案。

最佳答案

您需要使用 Vue 来执行 for 循环,而不是服务器模板语言:

<div class="articles">
    <budget-article v-for="article in articles" id="{{ article.id }}" name="{{ article.name }}" :amount="{{ article.amount }}" :enable="true"></budget-article>
</div>

然后,每当 articles 数组被推送到时,就会出现一篇新文章。

要最初将文章添加到页面,您应该执行以下操作(伪代码,因为我不知道模板语言):

data:function(){

  return {

    articles: {% json_encode(articles) %}

  }

}

关于javascript - 添加vue组件动态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35578033/

相关文章:

javascript - 谷歌分析记录首次点击

javascript - VueJS列表渲染异常

javascript - Content-Security-Policy 阻止 Vue.js

javascript - 隐藏提取错误

javascript - 在 QML 中加入 2 个字符串

javascript - 如何使用 jquery 将无序列表转换为样式精美的 <select> 下拉列表?

javascript - 从 JavaScript 渲染 HTML

javascript - 有没有办法检测作用域插槽是否传递给组件?

javascript - 如何使用 vue.js 将服务器端数据绑定(bind)到某些 html 元素

html - 使用 "dynamic width"时如何将转换应用于 v-dialog ,这意味着宽度 ="unset"?