如何将javascript对象传递给VueJS中的组件?

Mas*_*ade 4 javascript vue.js vue-component

这个问题听起来很基本,但是我无法弄清楚如何在VueJS中做到这一点。

我在HTML中有以下内容

<script>
 var config = {'cols':4,'color':'red'}
</script>

<div id="app">
   <mycomponent :config="config"></mycomponent>
</div>

var app = new Vue({
   el: '#app',
   data: {
      // config: config // I do not want to pass this
   }
})
Run Code Online (Sandbox Code Playgroud)

以下是用例:

  • 我知道这不起作用,因为组件中的config变量正在寻找app.config
  • 我不想像data{ config:config }Vue对象那样传递它。
  • 我可以通过它,<mycomponent :config="{'cols':4,'color':'red'}"></mycomponent>但是配置将非常长,这将是我的最后选择。
  • 是的,此配置在页面加载后不会更改,因此不需要绑定值。

有没有办法做到这一点?

Roy*_*y J 5

您可以将全局成员添加到Vue本身。更新:正如Osuwariboy在评论中指出的那样,由于某种原因,Vue在未缩小的Vue版本中不知道其名称。它需要创建一个Vue数据项,我已经在下面完成了。

var app = new Vue({
   el: '#app',
   data: {
      Vue
   },
   components: {
      myComponent: {
        template: '<div>{{config}}</div>',
        props: ['config']
      }
   }
});
Run Code Online (Sandbox Code Playgroud)
<script src="//cdnjs.cloudflare.com/ajax/libs/vue/2.3.3/vue.min.js"></script>
<script>
 Vue.$config = {'cols':4,'color':'red'}
</script>

<div id="app">
   <my-component :config="Vue.$config"></my-component>
</div>
Run Code Online (Sandbox Code Playgroud)