QUICKAPP学习笔记-----axios,vuex

axios
安装依赖axios

npm install axios 
  1. 首先,新建一个 http.js 文件:
import axios from 'axios'
import cfg from '@/automatically/config'
import Qs from 'qs'


const http = axios.create({
  // 初始配置
  baseURL: '',
})
monitor.log({ key: 'http_quickApp' })
// 添加请求拦截器
http.interceptors.request.use(
  function (config) {
    //调整api路径
    config.baseURL = cfg.server + "/"
        //修改header的值
    config.headers['clientId'] = cfg.clientId



    if (config.headers && config.headers['Content-Type'] == 'application/x-www-form-urlencoded') {
      config.transformRequest = [
        function (data) {
          return Qs.stringify(data, {
            arrayFormat: 'brackets',
          })
        },
      ]
    }

    // 在发送请求之前做些什么
    return config
  },
  function (error) {
    // 对请求错误做些什么
    return Promise.reject(error)
  }
)

// 添加响应拦截器
http.interceptors.response.use(
  function (response) {
    //处理header回传的token
    // if (response.headers._token_) {
    //   var token = JSON.parse(response.headers._token_)
    //   store.commit('setToken', token)
    // }
    //return response.data
  },
  function (error) {
    // 超出 2xx 范围的状态码都会触发该函数。
    // 对响应错误做点什么
    if (error.statusCode === 401) {
      console.log(error, 'error')
    }
    return Promise.reject(error)
  }
)

export default http

  1. 使用axios,axios官网
export function getBanners (param) {
  return http.get(`/uc/path/name`, {
    params: param
  })
}

vuex

由于快应用和 vue 的实现是有差异的,不能直接使用 vuex,需要对 vuex 的源码做一些处理。这里我们直接使用大佬的 quickapp-vuex,使用方式与 vuex 基本相同

npm install quickapp-vuex -S //npm安装

vuex-quickapp 项目
vuex官网

  1. 首先,新建一个 store.js 文件:
import Vuex from "quickapp-vuex";

export default new Vuex.Store({
  state: {
    count: 1,
    state:{}
  },
  getters: {
    count(state) {
      return "getter" + state.count;
    }
  },
  mutations: {
    increment(state) {
      state.count++;
    },
    decrement(state) {
      state.count--;
    },
    setToken (state, val) {
		 Object.assign(state.token, val)
  }
});
  1. 在 app.ux 中引入 store.js,并挂到全局对象上
import store from "path to store.js";
import Vuex from "quickapp-vuex";

Vuex.install(store);
  1. 之后我们就能在组件和页面中使用 vuex 了。注意,与在 vue 中使用 vuex 不同,在快应用中使用 vuex需要包一层Vuex.Component,其他的和 vuex 用法类似
<template>
  <div class="demo-page">
    <text class="title">欢迎打开{{count}}</text>
    <text class="btn" onclick="increment">+</text>
    <text class="btn" onclick="decrement">-</text>
  </div>
</template>

<script>
import {mapGetters, mapMutations, Component} from 'quickapp-vuex'

export default Component({
  onInit() {
    let tokenInfo=''
    storage.get({
	    key: 'tokenName',
	    success: function(data) {
	      tokenInfo=data
	      console.log('handling success',data)
	    },
	    fail: function(data, code) {
	      console.log(`handling fail, code = ${code}`)
	    }
	  })
     store.commit('setToken', tokenInfo)
  },
  computed:{
    ...mapGetters(['count'])
  },

  ...mapMutations(['increment', 'decrement'])
})
</script>
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大王0111

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值