父传子值使用---前后端交互实现首页中轮播图效果实现

  1. 父传子值
  2. 在父亲里先用import HomeBanner from "./Component/Banner";引入,在template中声明
<!-- 视频列表组件 -->
    <video-list :videoList="videoList"></video-list>
    <!-- 底部导航栏组件 -->
    <common-footer></common-footer>
    

3.需要在script中`

export default {
  //注册组件
  components: {
    HomeBanner,
    VideoList,
    CommonFooter
  },

4.如果组件中有数据需要传入则声明自己的数据源并写好方法

//声明数据源
  data() {
    return {
      banners: [],
      videoList: []
    };
  },
  //定义方法
  methods: {

     // 获取轮播图数据
    async getBannerData() {
      try {
        const result = await getBanner();
        console.log(result);
        console.log(result.data.code == 0)
        if (result.data.code == 0) {
          this.banners = result.data.data;
        }
      }catch(error){
          console.log(error)
      }
    },

    //获取视频列表
    async getVList(){
        try{
            const result = await getVideoList();
            if (result.data.code == 0) {
                this.videoList = result.data.data;
            }
        }catch(error){
            console.log(error)
        }
    }
  },
  mounted(){
      //页面渲染完成调用方法获取数据
      this.getBannerData();
      this.getVList()
  }
};
</script>

5.子组件需要用到props属性

<template>
  <cube-slide :data="banners">
    <cube-slide-item v-for="(item, index) in banners" :key="index">
      <a :href="item.url">
        <img :src="item.img" style="width: 100%" />
      </a>
    </cube-slide-item>
  </cube-slide>
</template>

<script>
export default {
  //获取父组件传递过来的值
  props: {
    banners: {
      type: Array,
      required: true,
    },
  },
};
</script>

<style>
</style>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值