vue.js - vue父子组件渲染数据不出来

查看:276
本文介绍了vue.js - vue父子组件渲染数据不出来的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

我定义了一个父子组件如下

//定义一个知识列表组件
    var articleList=Vue.extend({   //定义一个子组件,组件内的li标签v-for出来
          template:'<li>'
                        +'<a class="articleUl_a" :href="item.articleaddress" target="_blank">'
                            +'<div class="content_box">'
                                +'<div class="info_box">'
                                    +'<div class="color_9">'
                                        +'<ul class="metaUl">'
                                            +'<li>{{item.author}}</li>'
                                            +'<li>{{item.settime}}</li>'
                                            +'<li class="js-tag"><li>'
                                        +'</ul>'
                                    +'</div>'
                                    +'<div class="marginTop10 overflowEllipise">'
                                        +'<a :href="item.articleaddress" class="article_title color_3 fontSize16">{{item.articletitle}}</a>'
                                    +'</div>'
                                    +'<div class="marginTop5">'
                                        +'<a class="color_9 js-like">'
                                            +'<i class="fa fa-heart" aria-hidden="true"></i>'
                                            +'<label>{{item.likenum}}</label>'
                                        +'</a>'
                                    +'</div>'
                                +'</div>'
                                +'<div class="thumb" :style="{background-image:item.image,background-size: cover}"></div>'
                            +'</div>'
                        +'</a>'
                    +'</li>',
          props:['item']
    });
    Vue.component('project',{  //定义父组件,在父组件内部注册子组件
      template:'<ul class="articleUl"><article-list v-for="item in items" :item="item"></article-list></ul>',
      data:function(){
          return {
              items:this.articleArray
          }
      },
      components:{
        'article-list':articleList
      },
      props:{
        articleArray : Array
      }
    });
    new Vue({
        el: '#articleContent',
        data:{
            articleArray
        }
    });
    var articleArray=[
        {
            articleaddress:"",
            author:"赵某某",
            settime:"2017年06月23日",
            articletitle:"关于微信推送页设计的思考",
            likenum:"10",
            image:"../images/jscss.jpg"
        }
    ];

html代码如下所示

<article id="articleContent">
            <project :article-array='articleArray'></project>
</article>

为什么子组件没有被渲染出来呢?在浏览器中跟踪代码时,发现父组件被渲染出来了,缺少子组件,vue也不报错

解决方案

https://jsfiddle.net/KingMari...

var articleArray=[
    {
        articleaddress:"",
        author:"赵某某",
        settime:"2017年06月23日",
        articletitle:"关于微信推送页设计的思考",
        likenum:"10",
        image:"../images/jscss.jpg"
    }
]

放到前面去

另外,最上面的模板中,<li class="js-tag"><li> 少了反斜杠,<div class="thumb" :style="{background-image:item.image,background-size:cover}">少了若干单引号。

强烈建议使用 .vue 单文件组件,欢迎参加我的关于 Vue 的讲座以及极客学院的 Vue 视频课程。

这篇关于vue.js - vue父子组件渲染数据不出来的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆