首页 > 其他分享 >vue3 mock获取数据

vue3 mock获取数据

时间:2023-01-05 21:11:06浏览次数:41  
标签:category const 获取数据 nprogress vue3 import categoryList mock

创建api文件夹,在文件夹中创建mockAjax.js,和请求数据的api.js。

import axios from 'axios'
import nprogress from 'nprogress'
import 'nprogress/nprogress.css'

const requests = axios.create({
  // 基础路径
  baseURL: '/mock',
  // 请求不能超过5S
  timeout: 5000
})

requests.interceptors.request.use((config) => {
  nprogress.start()
  return config
})

requests.interceptors.response.use(
  (res) => {
    nprogress.done()
    return res.data
  }
)

export default requests

api/index.js

import mockRequests from './mockAjax'
export const reqgetCategoryList = () => mockRequests.get('/category')

创建mock文件夹,然后创建mockServer.js,用来模拟请求

import Mock from 'mockjs'

import category from './category.json'

Mock.mock('/mock/category', { code: 200, data: category })

在mock文件夹中创建json,表示请求的数据
category.json

[
  {
    "category_id": "6809637890",
    "category_name": "后端"
  }
]

创建store文件夹,然后创建index.js

import { reqgetCategoryList } from '@/api'
import { createStore } from 'vuex'

export default createStore({
  state: {
    categoryList: []
  },
  getters: {
  },
  mutations: {
    GETCATEGORYLIST (state, categoryList) {
      state.categoryList = categoryList
      console.log('mutaions', state.categoryList)
    }
  },
  actions: {
    async getCategoryList ({ commit }) {
      const result = await reqgetCategoryList()
      console.log('res', result)
      if (result.code === 200) {
        commit('GETCATEGORYLIST', result.data)
      }
    }
  },
  modules: {
  }
})

在页面中测试:

Home.vue

<template></template>
<script>
import { watch, computed } from 'vue'
import { useStore } from 'vuex'

export default {
  name: 'HomeView',
  components: {

  },
  setup () {
    const store = useStore()
    store.dispatch('getCategoryList')

    const categoryList = computed(() => store.state.categoryList)

    watch(categoryList, (newValue, oldValue) => {
      console.log('view', newValue)
    }, { immediate: true, deep: true })

    return {
      categoryList
    }
  }
}
</script>

标签:category,const,获取数据,nprogress,vue3,import,categoryList,mock
From: https://www.cnblogs.com/mantishell/p/17028845.html

相关文章

  • vue2 转 vue3+ts
    1.vite创建一个vue3+ts的项目2.依赖转变复制vue2package项目依赖。修改vue-router3=>vue-router4;vuex4=>pinia ;Ui库vant2=>vant4main.js 转换为 ......
  • 在Vue3这样子写页面更快更高效
    前言在开发管理的后台过程中,会增加、删除、更改很多页面,这些页面的逻辑大多相同,比如获取列表数据、分页、筛选等基本功能。不同的是呈现的数据项。还有一些操作按钮。对于刚......
  • Mock Server的使用
    postman的MockServer使用必须注册一个postman账号才能使用1、创建MockServer1)点击postman左上角的New弹出新建窗口,点击MockServer2)设置参数如下第一步第二步......
  • Vue3路由的redirect重定向结合函数实现不同的用户身份跳转到不同的首页
    访问网页主域名的时候,识别用户身份跳转到不同的首页,配置路由重定向constroutes:Array<RouteRecordRaw>=[//访问主域名的时候,根据用户的登录信息,重定向到不同的页......
  • vue2 vue3 禁用F12控制台 打印渲染新内容 禁用右键等
    constdisabled=()=>{//console.log('禁止脚本,运行成功');constconfig={rightKey:false,//是否开启右键菜单controller:fal......
  • Vue3中操作子组件实例
    子组件Child.vue<template><hr/>{{INFO}}<hr/><button@click="changeInfo">changeInfo</button></template><scriptsetuplang="ts">import{ref,r......
  • 一文教会你mock(Mockito和PowerMock双剑合璧)
    作者:京东物流杨建民1.什么是MockMock有模仿、伪造的含义。Mock测试就是在测试过程中,对于某些不容易构造或者不容易获取的对象,用一个虚拟的对象来创建以便测试的测试方法。m......
  • vite+vue3使用transition
    一番操作发现切换路由竟然没效果,控制台打印了警告原因是确实根节点,按照如下方式解决,可以愉快的进行路由切换了......
  • vue3使用clipboard
    <divclass="content-link"><spanid="link"class="content-link-urlellipsis">{{userInfo?.user.referralUrl}}</span><CopyIcon@click="copyUrl"class="......
  • Vue3+TS+Vite2+ElementPlus+Eslint项目实践遇到的技巧/问题汇总
    技巧/问题汇总Volar插件推荐一款VSCode插件,Volar是一款针对Vue的打造的官方插件,在第四届VueConf中尤雨溪大大专门做了推荐。用VSCode的铁汁们就有福了,虽然......