vue2饿了么--header组件数据的获取

header组件中有商家的ming名称数据和评分等数据,这些数据可以通过异步请求后端的数据获得,header组件通过接受接着数据并渲染,我们可以在header的父组件App.vue中通过发送ajax请求,获取商家的相关数据,在通过props属性,实现父组件向自组件数据的传递

首先安装vue-resource;作为第三方插件,作为模块时引用要先去注册,所以在main.js中

/* 第三方插件用块的方式去引用的时候要去注册 */
import VueResource from 'vue-resource';
/* 注册*/
Vue.use(VueResource);

在created()中发起ajax请求

import header from './components/header/header';
const ERR_OK = 0;
export default {
  //将data定义为一个函数,为了更好地封装
  data() {
    return {
      seller: {}
    };
  },
  created() {
    //请求的ajex地址,成功的回调,拿到一个response
    this.$http.get('/api/seller').then((response) => {
      //response是一个属性,将其转化为json对象
      response = response.body;
      //console.log(response);
      if (response.errno === ERR_OK) {
        // 数据在data字段中,将seller对象传给header组件,通过:seller
        this.seller = response.data;
        console.log(this.seller);
      }
    });
  },
  name: 'App',
  components: {
    'v-header': header
  }
};
</script>

在App.vue中引入header组件,并在模板中进行添加,然后将数据传递给header组件

 <v-header :seller = "seller">
    </v-header>

回到header组件中,通过props属性接收数据

export default {
//:seller = "seller" props接收传过来的seller对象
  props: {
    seller: {
      type: Object 
    }
  }
}

接收到数据之后就可以编写dom结构了。

猜你喜欢

转载自blog.csdn.net/qq_22317389/article/details/81097785