VUE3学习日志,二、配置vue-router、vuex

1,532 阅读2分钟

不好意思昨天立了flag今天要打脸了,由于vue-router 和vuex对composition做了支持,只能先配置他俩了,咱明天再学composition api

 如果还没有看过第一天项目搭建的童鞋请移步,先看一下项目结构

juejin.cn/post/687680…

一、配置vue-router

    1、修改src目录

          新建router目录,在router目录下新建index.js

          新建views目录,在目录下新建RouterDemoOne.vue和RouterDemoTwo.vue

    2、编写三个文件的代码

        首先是vue文件的代码,如果大家使用了第一天的那个代码块可以快速生成

       代码很简单,就不做说明了

     RouterDemoOne.vue

<style lang="less">
</style>

<template>
<h1>RouterDemoOne</h1>
<router-link to='/RouterDemoTwo'>goRouterDemoTwo</router-link>
</template>

<script>
import {} from 'vue'
export default {
  setup(){

    return { 

    }
  }
}
</script>

RouterDemoTwo.vue

<style lang="less">
</style>

<template>
<h1>RouterDemoTwo</h1>
<router-link to='/'>goRouterDemoOne</router-link>
</template>

<script>
import {} from 'vue'
export default {
  setup(){

    return { 

    }
  }
}
</script>

   接下是router/index.js,总的来说大体一样稍有不同

//第一个参数是用来创建路由,第二个是history模式  第三个是hash模式
import { createRouter, createWebHistory, createWebHashHistory  } from 'vue-router'
import RouterDemoTwo from '../views/RouterDemoTwo.vue';
const routes = createRouter({
  history: createWebHashHistory(),//此处替换上面的参数即可更换模式,我这里暂时使用hash
  routes:[
    {
      path: `/`,
      component: () =>import('../views/RouterDemoOne.vue')
   //这个就是大家熟悉的分包加载,只不过这里是vite实现的,但写法和webpack是一样的
    },
    {
      path: `/RouterDemoTwo`,
      component: RouterDemoTwo//静态引入
    }
  ]
});
//还是熟悉的钩子
routes.beforeEach((to, from, next) => {
  console.log('---routes.beforeEach---')
  next()
})
export default routes;

      新建文件到此结束接下来要修改两个文件来支持vue-touter

    3、修改入口文件支持router

      首先是main.js

import { createApp } from 'vue'
import App from './App.vue'
//此行要引入新建的router/index.js文件
import router from './router'

import 'ant-design-vue/dist/antd.min.css';//加入antd-vue
import antd from 'ant-design-vue';//加入antd-vue

//区别于之前的全局挂载router 这次直接在实例后.use(router)
createApp(App).use(router).use(antd).mount('#app')//use一下挂载到实例下成为全局组件

  APP.vue 这个文件主要是加入router-view

<template>
  <a-button @click="btnClick">点我</a-button>
  <a-modal title="VUE3" v-model:visible="visible">
    <p>{{ message }}</p>
  </a-modal>
  <!-- 跟之前一样加入router-view -->
  <router-view />
</template>
<script>
import { ref } from "vue";
export default {
  name: "App",
  setup() {
    const visible = ref(false);
    const message = "Hello vue3";
    const btnClick = () => {
      visible.value = true;
    };
    return {
      visible,
      message,
      btnClick
    };
  }
};
</script>

到此router配置结束,各位童鞋可以亲手试验一下。

二、配置vuex,vuex今天先配置上,之后的使用要配合composition,明天在详细说

1、新建文件夹及文件

 src目录下新建 store文件夹

然后在store文件夹下面新建

actions.js  getters.js  index.js  modules.js  mutations.js  state.js

一共六个文件,都是比较熟悉的名字 就不过多解释啦

2、编写代码index.js

import Vuex from 'vuex';
import state from './state'
import getters from './getters'
import mutations from './mutations'
import actions from './actions'
import modules from './modules'
const store= Vuex.createStore({
    state,
    getters,
    mutations,
    actions,
    modules
})
export default store;

3、修改main.js

import { createApp } from 'vue'
import App from './App.vue'
import router from './router'
//引入vuex
import store from '../store'
import 'ant-design-vue/dist/antd.min.css';//加入antd-vue
import antd from 'ant-design-vue';//加入antd-vue
//use一下
createApp(App).use(store).use(router).use(antd).mount('#app')//use一下挂载到实例下成为全局组件

 至此vuex配置完毕,之后的使用要和compositionAPI配合使用,明天咱们一起学习

最后在安利一个我自己的小项目,准备抄个钉钉,学习一下新技术

前端技术栈 vue3+electron+vite+vuerouter+ant-design-vue+less

后端技术栈  待学习

github.com/a1178013314…