Vue.js 父组件向子组件传递数据通过 props

🌙
手机阅读
本文目录结构

我的使用场景:

  • 父组件:home.vue
  • 子组件:feed-section.vue

父组件 home.vue 通过请求拿到数据后,传递给子组件 feed-section.vue;因为在子组件中需要渲染 HTML;(当然如果简单些你可以使用 vue 插槽;)

为了让组件完全的可复用;尽量不在父组件干涉子组件内容

实现方法:

父组件中的操作:把数据放在子组件的 :xxxxx 上,这样就传过去了

<feed-section :recommend_feeds="recommend_feeds"></feed-section>

子附件的操作:

props: [
  'recommend_feeds'
],

通过 props 中写一个recommend_feeds 这样就可以拿到父组件通过recommend_feeds穿过来的数据了;

具体写法如下图

home.vue 的

<template>
  <div class="card">
    <quick-nav></quick-nav>
    <feed-section :recommend_feeds="recommend_feeds"></feed-section>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    首页组件2
  </div>
</template>

<script>
  import QuickNav from '@/base/quick-nav/quick-nav.vue'
  import FeedSection from '@/base/feed-section/feed-section.vue'
  import {getHomeData} from '@/api/home-data.js'

  export default {
    data () {
      return {
        recommend_feeds: []
      }
    },
    components: {
      QuickNav,
      FeedSection
    },
    created () {
      this.starGetHomeData()
    },
    methods: {
      starGetHomeData () {
        getHomeData().then((res) => {
          console.log(res.recommend_feeds)
          this.recommend_feeds = res.recommend_feeds
        })
      }
    }
  }
</script>

feed-section.vue 中的代码

<script>
  export default {
    name: 'feed-section',
    props: [
      'recommend_feeds'
    ],
    data () {
      return {
        myData: []
      }
    },
    mounted: function () {
    },
    methods: {
      catchErr (e) {
//        const sourcesImg = e.target.getAttribute('src')
//        e.target.setAttribute('src', sourcesImg)
        console.log(e)
      }
    }
  }
</script>

AXIHE / 精选资源

浏览全部教程

面试题

学习网站

前端培训
自己甄别

前端书籍

关于朱安邦

我叫 朱安邦,阿西河的站长,在杭州。

以前是一名平面设计师,后来开始接接触前端开发,主要研究前端技术中的JS方向。

业余时间我喜欢分享和交流自己的技术,欢迎大家关注我的 Bilibili

关注我: Github / 知乎

于2021年离开前端领域,目前重心放在研究区块链上面了

我叫朱安邦,阿西河的站长

目前在杭州从事区块链周边的开发工作,机械专业,以前从事平面设计工作。

2014年底脱产在老家自学6个月的前端技术,自学期间几乎从未出过家门,最终找到了满意的前端工作。更多>

于2021年离开前端领域,目前从事区块链方面工作了