前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Vue3开发实战02-vue项目添加状态管理Vuex,路由router,以及http请求a

Vue3开发实战02-vue项目添加状态管理Vuex,路由router,以及http请求a

原创
作者头像
JQ实验室
发布2022-09-21 08:05:32
4780
发布2022-09-21 08:05:32
举报
文章被收录于专栏:实用技术

1、添加vuex:

安装依赖,打开终端,执行命令:

yarn add vuex

不能使用install

在这里插入图片描述
在这里插入图片描述

编码新建utils目录下store.js文件

代码语言:javascript
复制
/**存储*/
import { createStore } from "vuex"
const state = {
    user: {
        userName: "",
        avtived: false,
        online: false
    }
}

const mutations = {
    setUser(state, data) {
        state.user.userName = data.userName;
        state.user.avtived = data.avtived;
    }
}
const actions = {
    setUser({ commit }, data) {
        // 模拟异步处理
        setTimeout(() => {
            commit("setUser", data);
        }, 3000);
    }
}

const getters = {
    getUser(state) {
        return state.user;
    }
}

export default createStore({
    state,
    mutations,
    actions,
    getters
})

修改main.js,测试store

代码语言:javascript
复制
import { createApp } from 'vue'
import App from './App.vue'
import store from './utils/store'
createApp(App).use(store).mount('#app')

//测试store
store.commit("setUser",{userName:'xiao wang'})
console.log(store.getters.getUser)

2、添加router

打开终端 执行命令,添加router依赖

yarn add vue-router

在这里插入图片描述
在这里插入图片描述

在utils目录下新建router.js文件

代码语言:javascript
复制
import {createRouter,createWebHistory} from "vue-router"
import home from '../components/HelloWorld.vue'

const routes = [{
    path: '/',
    component: home
},{
    path:'/other',
    component: home
}]

export default createRouter({
    history:createWebHistory(),
    routes:routes
})

修改main.js

代码语言:java
复制
import { createApp } from 'vue'
import App from './App.vue'
import store from './utils/store'
import router from './utils/router'
//Vue.config.productionTip = false

//createApp(App).use(store).use(router).mount('#app')

const app = createApp(App)
app.use(store)
app.use(router)
app.mount('#app')

3、添加axios:

打开终端添加依赖:axios和vue-axios

yarn add axios vue-axios

在这里插入图片描述
在这里插入图片描述

修改main.js

代码语言:yaml
复制
import { createApp } from 'vue'
import App from './App.vue'
import store from './utils/store'
import router from './utils/router'
import axios from 'axios'
import VueAxios from 'vue-axios'
//Vue.config.productionTip = false

//createApp(App).use(store).use(router).mount('#app')

const app = createApp(App)
app.use(store)
app.use(router)
app.use(VueAxios,axios)
app.mount('#app')


//测试store
store.commit("setUser",{userName:'xiao wang'})
console.log(store.getters.getUser)
//测试axios
axios.get('http://192.168.1.15:8080/api/upload/file?id=806a89ac32f346378dc228206872ef3f').then((response) => {
    console.log(response)
})

关键语句: app.use(VueAxios,axios)

4、添加代理配置:

在根目录下新建vue.config.js文件

代码语言:swift
复制
module.exports = {
    devServer: {
        proxy: {
          '/api': {
            target: 'http://192.168.1.15:8080/api',
            ws: true,
            changeOrigin: true
          },
        }
      }
}

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、添加vuex:
  • 2、添加router
  • 3、添加axios:
  • 4、添加代理配置:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档