zoukankan      html  css  js  c++  java
  • vue高仿饿了么学习笔记(四)—— Vue Resource

    一、Vue Resource

    1)安装 Vue Resource

    github:https://github.com/pagekit/vue-resource

    查看github上关于 Vue Resource 的安装方式,选择 yarn 或者 npm 安装。

    2)注入 Vue Resource

    import Vue from 'vue';
    import VueResource from 'vue-resource'; // 新增
    import App from './App';
    import router from './router';
    
    Vue.use(VueResource); // 新增
    
    Vue.config.productionTip = false;
    
    ... // 省略部分已有内容

    3)mock 数据

    在 build/webpack.dev.conf.js 中 mock 服务

    ... // 省略部分已有内容
    const portfinder = require('portfinder')
    
    // 添加 mock 数据 新增
    const express = require('express') // 需 npm 安装 express
    const app = express()
    var appData = require('../data.json') // 该文件保存了所有的数据 放在根目录中
    var goods = appData.goods
    var seller = appData.seller
    var ratings = appData.ratings
    var apiRoutes = express.Router()
    app.use('/api', apiRoutes)
    
    const HOST = process.env.HOST
    ... // 省略部分已有内容

    注:data.json 的内容参考 https://github.com/lwl0812/vue-sell 中的 data.json 文件

    在 webpack.dev.conf.js 中找到 devServer,添加如下代码:

    devServer: {
       // ... 省略部分已有内容
        watchOptions: {
          poll: config.dev.poll,
        },
       // 以下为新增的接口
        before(app) {
          app.get('/api/appData', (req, res) => {
            res.json({
              errno: 0,
              data: appData
            })
          }),
          app.get('/api/goods', (req, res) => {
            res.json({
              errno: 0,
              data: goods
            })
          }),
          app.get('/api/ratings', (req, res) => {
            res.json({
              errno: 0,
              data: ratings
            })
          }),
          app.get('/api/seller', (req, res) => {
            res.json({
              errno: 0,
              data: seller
            })
          })
        }
      },

    重启服务,然后在浏览器窗口打开 localhost:8082/api/appData,可看到数据请求成功。

    4)使用 Vue Resource

    参考官网的使用方式

    在 App.vue 中

    import header from './components/header/header';
    
      const ERR_OK = 0; // 新增
    
      export default {
        data() {
          return {
            seller: {}
          };
        },
        created() { // 新增
          this.$http.get('/api/goods').then((response) => {
            const res = response.body;
            if (res.errno === ERR_OK) {
              this.goods = res.data; // 获取 goods
            }
          });
          this.$http.get('/api/ratings').then((response) => {
            const res = response.body;
            if (res.errno === ERR_OK) {
              this.ratings = res.data; // 获取 ratings
            }
          });
          this.$http.get('/api/seller').then((response) => {
            const res = response.body;
            if (res.errno === ERR_OK) {
              this.seller = res.data; // 获取 seller
            }
          });
        },
        components: {
          'v-header': header
        }
      };
  • 相关阅读:
    那些好的句子
    ❤️博客使用说明-飞沙
    求n以内,除5的倍数的和
    C# 枚举
    2021年bilibili程序员节日
    MT管理器使用技巧
    腾讯找人工客服
    校报白皮书
    C语言教程(下)
    svn版本控制
  • 原文地址:https://www.cnblogs.com/lwl0812/p/9539124.html
Copyright © 2011-2022 走看看