vue项目添加状态管理Vuex,路由router,axios

简介: Vue开发实战02-vue项目添加状态管理Vuex,路由router,以及http请求axios

1、添加vuex:

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

yarn add vuex

不能使用install
在这里插入图片描述

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

/**存储*/
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

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文件

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

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

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文件


module.exports = {
    devServer: {
        proxy: {
          '/api': {
            target: 'http://192.168.1.15:8080/api',
            ws: true,
            changeOrigin: true
          },
        }
      }
}
相关文章
|
3月前
|
JavaScript 容器
乾坤qiankun框架搭建 主应用为vue3的项目。
乾坤qiankun框架搭建 主应用为vue3的项目。
240 2
|
2月前
|
数据采集 监控 JavaScript
在 Vue 项目中使用预渲染技术
【10月更文挑战第23天】在 Vue 项目中使用预渲染技术是提升 SEO 效果的有效途径之一。通过选择合适的预渲染工具,正确配置和运行预渲染操作,结合其他 SEO 策略,可以实现更好的搜索引擎优化效果。同时,需要不断地监控和优化预渲染效果,以适应不断变化的搜索引擎环境和用户需求。
|
2月前
|
JavaScript 前端开发
如何在 Vue 项目中配置 Tree Shaking?
通过以上针对 Webpack 或 Rollup 的配置方法,就可以在 Vue 项目中有效地启用 Tree Shaking,从而优化项目的打包体积,提高项目的性能和加载速度。在实际配置过程中,需要根据项目的具体情况和需求,对配置进行适当的调整和优化。
|
3月前
|
JavaScript
如何在 Vue 项目中选择合适的模块格式
【10月更文挑战第20天】选择合适的模块格式需要综合考虑多个因素,没有一种绝对正确的选择。需要根据项目的具体情况进行权衡和分析。在实际选择过程中,要保持灵活性,根据项目的发展和变化适时调整模块格式。
25 7
|
2月前
Vue3 项目的 setup 函数
【10月更文挑战第23天】setup` 函数是 Vue3 中非常重要的一个概念,掌握它的使用方法对于开发高效、灵活的 Vue3 组件至关重要。通过不断的实践和探索,你将能够更好地利用 `setup` 函数来构建优秀的 Vue3 项目。
|
3月前
|
JavaScript 前端开发 编译器
在 Vue 项目中使用 ES 模块格式的优点
【10月更文挑战第20天】在 Vue 项目中使用 ES 模块格式具有众多优点,这些优点共同作用,使得项目能够更高效、更可靠地开发和运行。当然,在实际应用中,还需要根据项目的具体情况和需求进行合理的选择和配置。
48 6
|
2月前
|
JavaScript 测试技术 UED
解决 Vue 项目中 Tree shaking 无法去除某些模块
【10月更文挑战第23天】解决 Vue 项目中 Tree shaking 无法去除某些模块的问题需要综合考虑多种因素,通过仔细分析、排查和优化,逐步提高 Tree shaking 的效果,为项目带来更好的性能和用户体验。同时,持续关注和学习相关技术的发展,不断探索新的解决方案,以适应不断变化的项目需求。
|
3月前
|
缓存 JavaScript 前端开发
《基础篇第4章:vue2基础》:使用vue脚手架创建项目
《基础篇第4章:vue2基础》:使用vue脚手架创建项目
87 3
|
3月前
|
前端开发 JavaScript 安全
在vue前端开发中基于refreshToken和axios拦截器实现token的无感刷新
在vue前端开发中基于refreshToken和axios拦截器实现token的无感刷新
186 4
|
前端开发 JavaScript API
【mock】后端不来过夜半,闲敲mock落灯花 (mockjs+Vuex+Vue实战)
mock的由来【假】   赵师秀:南宋时期的一位前端工程师 诗词背景:在一个梅雨纷纷的夜晚,正处于项目编码阶段,书童却带来消息:写后端的李秀才在几个时辰前就赶往临安度假去了,!此时手头仅有一个简单的数据接口文档的赵师秀慨叹一声:"好吧,那还是我自己先模拟一下后端的接口吧"   _(:...
1582 0