vue 异步组件 传递数组问题

A.html


 <x-header   v-bind:a="a"  ></x-header>

 var _vm = new Vue({
    el: '#app',
    data: {
      a:[
        {
          name: '首页',
          img: '../assets/images/menu.png',
          url: '../index/index.html',
          active: false
        }
      ]
    },
    mounted () {
        var _this = this;
         Vue.component("x-header", function (resolve,reject) {
                require(["text!../component/x-header.html"],function(html) {
                    resolve({
                      props: {  
                        a:Array
                      },
                      template: html
                })
            });
        });
    },
    methods: {
       
    }
});

b.html

<div>
   <div   v-for="(index,item) in a" >
              {{index}}--- {{item}} 
        </div>
</div>

实际输出结果却如下:
[--- 0
o--- 1
b--- 2
j--- 3
e--- 4
c--- 5
t--- 6
--- 7
O--- 8
b--- 9
j--- 10
e--- 11
c--- 12
t--- 13
]--- 14

阅读 2.5k
3 个回答

这个应该是因为是从父组件传下来的a是一个'[object Object]'的字符串数据,还有遍历时应该写成:

   <div v-for="(item, index) in a" :key="index">
      {{index}}--- {{item}} 
    </div>

x-header为什么要放在mounted里面全局注册呢?直接放在外面全局注册就行了啊

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题