文昌市 顺义区 鄯善县 湘潭市 宁晋县 南丰县 楚雄市 唐山市 额尔古纳市 绿春县 左贡县 宜兰县 西藏 青铜峡市 黔江区 龙海市

文章导航软件下载单机游戏安卓资源苹果资源

pc软件新闻网络操作系统办公工具编程服务器软件评测

安卓新闻资讯应用教程刷机教程安卓游戏攻略tv资讯深度阅读综合安卓评测

苹果ios资讯苹果手机越狱备份教程美化教程ios软件教程mac教程

单机游戏角色扮演即时战略动作射击棋牌游戏体育竞技模拟经营其它游戏游戏工具

网游cf活动dnf活动lol周免英雄lol礼包

手游最新动态手游评测手游活动新游预告手游问答

您的位置:单机游戏角色扮演 → 怪物猎人世界新装备介绍 怪物猎人世界新装备新系统一览

神魔养殖场_已配置好的vue全家桶项目router,vuex,api,axios,vue-ls,async/await,less下载即使用

标签:拉希姆 时时彩推荐新锦海

github 地址: https://github.com/liangfengbo/vue-cli-project 点击进入

vue-cli-project

  • 已构建配置好的vuejs全家桶项目,统一管理后端接口 | 获取数据 | 请求数据,已包含vue-router,vuex,api,axios. webpack, 储存用vue-ls, 异步async/await, css less. 下载即使用项目开发。
  • 喜欢或对你有帮助的话请点star??,Thanks.

    A Vue.js project

使用

# 安装服务
npm install

# 启动服务
npm run dev

说明

src架构

├── App.vue
├── api
│   ├── doctor.js
│   └── fetch.js
├── assets
│   └── logo.png
├── components
│   └── HelloWorld.vue
├── libs
│   └── util.js
├── main.js
├── router
│   └─8090_2018年最新新闻网─ index.js
├── store
│   ├── index.js
│   ├── modules
│   └── mutation-types.js
└── views
    └── doctor

处理数据页面这2大块,把数据和页面分离,在vuex里面做请求数据,页面只需要做调用数据。

请求接口这块再细分,接口和请求接口分开,我使用了最新的async/await函数做数据请求

api文件夹 主要放后端提供的接口,如

import fetch from "./fetch";

export default {
  // 获取医生列表
  list(params) {
    return fetch.get("/doctor/list", params)
  },

  // 获取医生详情信息
  detail(id) {
    return fetch.post("/doctor/detail/" + id);
  },
}

fetch.js 文件是封装axios请求,以及请求处理,和http状态码的等处理

import Util from "../libs/util"
import qs from "qs"
import Vue from "vue"

Util.ajax.defaults.headers.common = {
  "X-Requested-With": "XMLHttpRequest"
};

Util.ajax.interceptors.request.use(config => {
  /**
   * 在这里做loading ...
   * @type {string}
   */

  // 获取token
  config.headers.common["Authorization"] = "Bearer " + Vue.ls.get("web-token");
  return config

}, error => {
  return Promise.reject(error)

});

Util.ajax.interceptors.response.use(response => {

  /**
   * 在这里做loading 关闭
   */

    // 如果后端有新的token则重新缓存
  let newToken = response.headers["new-token"];

  if (newToken) {
    Vue.ls.set("web-token", newToken);
  }

  return response;

}, error => {
  let response = error.response;
  if (response.status == 401) {
    // 处理401错误

  } else if (response.status == 403) {
    // 处理403错误

  } else if (response.status == 412) {
    // 处理412错误

  } else if (response.status == 413) {
    // 处理413权限不足

  }

  return Promise.reject(response)

});

export default {
  post(url, data) {

    return Util.ajax({
      method: "post",
      url: url,
      data: qs.stringify(data),
      timeout: 30000,
      headers: {
        "Content-Type": "application/x-www-form-urlencoded; charset=UTF-8"
      }
    })
  },

  get(url, params) {
    return Util.ajax({
      method: "get",
      url: url,
      params,
    })
  },

  delete(url, params) {
    return Util.ajax({
      method:名侦探柯南剧场版_2018年最新新闻网 "delete",
      url: url,
      params
    })
  },

  put(url, data) {

    return Util.ajax({
      method: "put",
      url: url,
      data: qs.stringify(data),
      timeout: 30000,
      headers: {
        "Content-Type": "application/x-www-form-urlencoded; charset=UTF-8"
      }
    })
  }
}

在vuex里面做请求,比如请求医生列表,用async/await,拿到数据存进store数据里面

├── index.js
├── modules
│   └── doctor.js
└── mutation-types.js

import doctor from "../../api/doctor"
import * as types from "../mutation-types"

const state = {
  // 医生列表
  doctorList: [],
  // 医生详情信息
  doctorDeta异世邪君_2018年最新新闻网il: null,
};

const mutations = {
  // 设置医生列表
  [types.SET_DOCTOR_LIST](state, data) {
    state.doctorList = data
  },
  // 设置医生详情信息
  [types.SET_DOCTOR_DETAIL](state, data) {
    state.doctorDetail = data
  },
};

const actions = {

  /**
   * 获取医生顾问列表
   * @param state
   * @param commit
   * @param params
   * @returns {Promise<void>}
   */
  async getDoctorList({state, co鬼吹灯之圣泉寻踪_2018年最新新闻网mmit}, params) {
    let ret = await doctor.list(params);
    commit(types.SET_DOCTOR_LIST, ret.data.data);
  },

  /**
   * 获取医生详情信息
   * @param state
   * @param commit
   * @param id 医生ID
   * @returns {Promise<void>}
   */
  async getDoctorDetail({state, commit}, id) {
    let ret = await doc代嫁弃妃_2018年最新新闻网tor.detail(id);
    commit(types.SET_DOCTOR_DETAIL, ret.data.data);
  }
};

export default {
  state,
  actions,
  mutations
}

在页面里需要执行引入:

import {mapActions, mapState} from "vuex"

代码可以具体看文件的代码

└── doctor
    ├── detail.vue
    └── list.vue

<script>
  import {mapActions, mapState} from "vuex"

  export default {
    components: {},
    data() {
      return {}
    },
    computed: {
      ...mapState({
    中南财经政法大学_2018年最新新闻网    doctorList: state => state.doctor.doctorList,
      })
    },
    async created() {
      // 医生类型
      let params = {type: "EXP"};
      // 获取医生列表
      await this.getDoctorList(params);
    },
    methods: {
      ...mapActions([
        // 获取医生列表
        "getDoctorList"
      ]),

      // 路由跳转方法
      routeLink(link) {
        this.$router.push({path: link});
      },
    }
  }
</script>

核心就是把数据和页面分离,细分把接口,请求数据用vuex做处理,在页面获取数据都做统一管理项目。可以具体看项目里面的代码。

github 地址: https://github.com/liangfengbo/vue-cli-project 点击进入

当前文章:http://fin-fabusheng-com.tingtoys.cn/vzh078jr/537a5_151366.html

发布时间:2019-10-16 08:34:15

澳门银河娱乐yh163am.com  银河娱乐首页yh163am.com中国女留学生在西班牙被辱骂攻击,多次反抗无效  澳门银河官网yh163am.com  919银河优越会  澳门银河送彩金  澳门银河娱乐场yh163am.com  银河优越会会员申请  世界杯投注  澳门银河娱乐送彩金网站小猪佩奇不差钱是什么梗 佩奇为何不差钱  919银河优越会  

相关阅读 育碧公布《特技摩托:崛起》:2019年2月发售泉州鱼罐头出口七成销往“一带一路”彭博社走进特斯拉工厂:所有设备全力生产Model 35分钟入门自动化测试——你应该学会的Postman用法(2)暴雨黄色预警发布:海南广东广西等地有大到暴雨使用chrome开发者工具中的network面板测量网站网络性能河北承德首届“天原药业金莲花杯”全国摄影大赛启动Oracle的数据并发与一致性详解(上)

文章评论
发表评论

热门文章 山东省渔船管理实施黑名单制度 严惩违法违规行为腰鼓百面如春雷 打彻脱贫花自开历家村“火辣辣”的致富路传Switch即将支持媒体应用,看电影听音乐不是梦

最新文章 吸汗透气/舒适休闲,特步男士运动速干短袖T恤39元三星Galaxy Note9曝料:4000mAh电池,更快的无线充电 第八届北京国际自行车骑游大会激情开赛小米生态链众筹智能机器人:1999元,搭载三维情感模型微软Office界面大变样:采用流畅设计,更易用微软官方Windows 10主题包《Undersea Life》免费下载:活力海底世界

人气排行 消息称美团计划本月提交60亿美元香港IPO申请暗网流出A站近千万用户数据价目表:1元800条ShellExecuteEX打开iqy文件导致excel hang的原因分析富士康与万科签约:厂区附近部分房源6折租给员工谷歌新规:禁止从第三方来源安装Chrome扩展程序京剧电影《大闹天宫》在福建拍摄 或年底与观众见面创意集市搬进长沙“城市客厅”“非遗”手艺魅力四射上千幅今昔对比老照片展出 见证北京四十年巨变