iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >vue3中router路由及vuex的store如何使用
  • 157
分享到

vue3中router路由及vuex的store如何使用

2023-06-29 17:06:39 157人浏览 泡泡鱼
摘要

这篇“vue3中router路由及Vuex的store如何使用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“vue3中rou

这篇“vue3中router路由及Vuex的store如何使用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“vue3中router路由及vuex的store如何使用”文章吧。

vue3 router路由及vuex store使用

1.路由

<script>import { useRouter, useRoute } from 'vue-router'export default {  setup() {    const router = useRouter() // 组件内路由    const route = useRoute() // 组件内路由信息  }}</script>

2.vuex

创建store

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

组件内使用store

<script>import { useStore } from 'vuex'export default {  setup() {    const store = useStore()    const state = store.state       const methods = {         // 处理commit      handleMutation: () => {        store.commit(...)      },      // 处理dispatch      handleAction: () => {        store.dispatch(...)      }       }    return {      ...methods     }  }}</script>

vue3中router路由和vuex的store使用,获取对象基本使用

vue3中router和store使用方法

因为在vue3的setup内不能使用this对象,所有所有直接通过this来访问的方法都不能使用了。

那么在vue3中怎么访问this.r o u t e r 或 者 t h i s . router 或者 this.router或者this.route呢?

记住一条规则:vue3中基本上所有通过this来访问的对象都换成useXxx的方式来获取。

比如说router,可以通过useRouter和 useRoute来获取router,route对象

1、企业开发Router全局配置

企业开发中在src/router/index.js中全局配置,并在main.js中添加到Vue对象

import { createRouter, createWEBHistory } from "vue-router";// 路由规则const routes = [  {    path: "/",    name: "主页",    meta: ["istabbar"],    component: () => import("../views/Home.vue"),  },];//根据路由规则创建路由const router = createRouter({  history: createWebHistory(""),  routes,});export default router;

在main.js中添加到Vue对象

import { createApp } from "vue";import App from "./App.vue";import router from "./router"; // 添加路由router引入// 创建VUE对象createApp(App)  .use(router) // 使用.use(router)添加路由router  .mount("#app");

配置完后就可以全局使用了

1.1、Router获取及使用

先引入vue-router,再获取对象:

import { useRouter } from “vue-router”;const router = useRouter();

但是这也不是唯一的方法,传统的和VUE3的使用方法如下:

这里提供了三种方法用于获取 router 对象

<template>  <div class="page">    因为在setup内部没有this访问权限,不能直接使用this访问this.$router 或者    this.$route。所有使用useRouter, useRoute来获取  </div></template>
<script>import { getCurrentInstance } from "vue";import { useRouter } from "vue-router";export default {  setup() {    // 第一种方法:获取路由对象 router 的方法1    const vue = getCurrentInstance();    const router1 = vue.ctx.$router;    // 第二种方法:获取路由对象 router 的方法2    const router2 = useRouter();          // 下面提供了router对应的方法使用大全    // ------------------------------------------------------    // router1.addRoute(parentOrRoute, route)    // router1.afterEach(回调函数)    // router1.back() 等价于 Go(-1)    // router1.beforeEach(回调函数)    // router1.beforeResolve(回调函数)    // router1.currentRoute 获取当前路由:如: {_rawValue: {…}, _shallow: true, __v_isRef: true, _value: {…}}    // router1.forward() 等价于 go(1)    // router1.getRoutes: ƒ getRoutes()    // router1.go(delta) 等价于 routerHistory.go(delta) 跳到指定历史记录    // router1.hasRoute(name) 判断是否有对应的路由    // router1.isReady() 判断路由是否准备跳转    // router1.onError(回调函数) 当发生错误的时候执行的    // router1.options 获取所有路由信息 {history: {…}, routes: Array(5)}    // router1.push(to) 跳转到指定路由对应的页面,有历史记录    // router1.removeRoute(name) 动态的删除某个路由    // router1.replace(to) 直接跳转到指定路由页面,没有历史记录    // router1.resolve(rawLocation, currentLocation)  可以自定义跳转参数的方法    return {};  },  mounted() {    // 第三种方法:获取路由对象 router 的方法3    console.log(this.$router);  },};</script>

1.2、Route获取及使用

先引入vue-router,再获取对象:

import { useRouter } from “vue-router”;const router = useRouter();

但是这也不是唯一的方法,传统的和VUE3的使用方法如下:

这里提供了三种方法用于获取 router 对象

<template>  <div class="page">    因为在setup内部没有this访问权限,不能直接使用this访问this.$router 或者    this.$route。所有使用useRouter, useRoute来获取  </div></template>
<script>import { getCurrentInstance } from "vue";import { useRoute } from "vue-router";export default {  setup() {    // 第一种方法:获取路由对象 router 的方法1    const vue = getCurrentInstance();    const route1 = vue.ctx.$router.currentRoute.value;    console.log(route1);    // 第二种方法:获取路由对象 router 的方法2    const route2 = useRoute();    console.log(route2);    // 下面提供了route对应的属性使用大全    // ------------------------------------------------------    // fullPath: "/user"  完整路由路径    // hash: "" 锚点部分    // href: "/user"  跳转来的时候的路径    // matched: [{…}]   路由匹配日规则数组    // meta: {0: "istabbar"}  路由附加的元数据    // name: "个人中心" 路由的名称    // params: {}   路由跳转时带过来的附加参数,如果是对象需要转换成JSON格式    // path: "/user"  编码 URL 的 pathname 部分,与路由地址有关    // query: {}   地址附带的参数    // redirectedFrom: undefined  重定向跳转过来之前的地址,如果没有重定向,则为 undefined。    return {};  },  mounted() {    // 第三种方法:获取路由对象 router 的方法3    console.log(this.$route);  },};</script>

2、企业开发Store全局配置

企业开发中在src/store/index.js中全局配置,并在main.js中添加到Vue对象

import { createStore } from "vuex";//创建存储对象export default createStore({  // 需要存储的值都放在这里面  state() {    return {      count: 0,    // 在视图中通过$store.state.count来获取    };  },  // 在其他视图中通过 $store.commit('setState', 10) 使用,用于修改stor存的值  mutations: {    setState(state, count) {    // 只能接受两个参数,用于修改store存的值      state.count = count;    },  },  // 相当于组件的计算属性 通过 $store.getters.doubleCount 获取计算后的值  getters: {    doubleCount(state) {      return state.count * 2;    },  },  // 异步任务 不会改变state 通过 $store.dispath('doubleCount') 使用  actions: {    doubleCount(context) {      context.commit("doubleCount");    },  },  // store的下级store 方便大型项目复杂数据管理,这里面相当于可以在放置一个和外面这些一样的模块  modules: {},});

在main.js中添加到Vue对象

import { createApp } from "vue";import App from "./App.vue";import router from "./router"; // 添加路由router引入import store from "./store"; // 添加全局存储vuex引入// 创建VUE对象createApp(App)  .use(router) // 使用.use(router)添加路由router  .use(store) // 使用.use(store)添加全局存储vuex  .mount("#app");

配置完后就可以全局使用了

2.1、Store获取及使用

先引入vuex,再获取对象:

import { useStore } from “vuex”;const store = useStore();

这里提供了三种方法用于获取 router 对象

<template>  <div class="page">    因为在setup内部没有this访问权限,不能直接使用this访问this.$router 或者    this.$route。所有使用useRouter, useRoute来获取  </div></template>
<script>import { getCurrentInstance } from "vue";import { useStore } from "vuex";export default {  setup() {    // 第一种方法:获取路由对象 router 的方法1    const vue = getCurrentInstance();    const store1 = vue.ctx.$store;    console.log(store1);    // 第二种方法:获取路由对象 router 的方法2    const store2 = useStore();    console.log(store2);    // 下面提供了:store 对应的属性使用大全    // ------------------------------------------------------    // commit(type, payload, options2) 在其他视图中使用mutations中定义的方法    // dispatch(type, payload) 异步任务 不会改变state 在其他视图中使用actions中定义的方法    // getters: {}  相当于组件的计算属性 通过 $store.getters.doubleCount 获取计算后的值    // state: (...)  store中存储的值,就是通过这个在视图中获取store存储的值    return {};  },  mounted() {    // 第三种方法:获取路由对象 store的方法3    console.log(this.$store);  },};</script>

功能快捷键

  • 撤销:Ctrl/Command + Z

  • 重做:Ctrl/Command + Y

  • 加粗:Ctrl/Command + B

  • 斜体:Ctrl/Command + I

  • 标题:Ctrl/Command + Shift + H

  • 无序列表:Ctrl/Command + Shift + U

  • 有序列表:Ctrl/Command + Shift + O

  • 检查列表:Ctrl/Command + Shift + C

  • 插入代码:Ctrl/Command + Shift + K

  • 插入链接:Ctrl/Command + Shift + L

  • 插入图片:Ctrl/Command + Shift + G

  • 查找:Ctrl/Command + F

  • 替换:Ctrl/Command + G

以上就是关于“vue3中router路由及vuex的store如何使用”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注编程网精选频道。

--结束END--

本文标题: vue3中router路由及vuex的store如何使用

本文链接: https://www.lsjlt.com/news/325988.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • vue3中router路由及vuex的store如何使用
    这篇“vue3中router路由及vuex的store如何使用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“vue3中rou...
    99+
    2023-06-29
  • vue3中router路由以及vuex的store使用解析
    目录vue3 router路由及vuex store使用1.路由2.vuexvue3中router路由和vuex的store使用,获取对象基本使用vue3中router和store使...
    99+
    2024-04-02
  • vue3中如何使用router路由实现跳转传参
    这篇文章主要介绍了vue3中如何使用router路由实现跳转传参的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇vue3中如何使用router路由实现跳转传参文章都会有所收获,下面我们一起来看看吧。一、路由跳转首...
    99+
    2023-07-05
  • Vue3 中路由Vue Router 的使用实例详解
    目录前言:一、什么是 Vue Router ?二、路由的使用1、路由的安装2、路由的模式3、创建路由模块4、声明路由链接和占位符三、路由的重定向和别名四、嵌套路由五、声明式和编程式导...
    99+
    2023-02-18
    Vue3 路由Vue Router使用 Vue Router使用
  • vue3怎么使用vue-router及路由权限拦截
    这篇文章主要讲解了“vue3怎么使用vue-router及路由权限拦截”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“vue3怎么使用vue-router及路由权限拦截”吧!使用vue-rou...
    99+
    2023-06-30
  • Vue3如何使用Vue-Router进行路由控制
    目录1.安装Vue-router3.固定路由跳转4.动态路由跳转5. vue-router配置文件6.在代码中控制路由跳转1.安装Vue-router 传送门:官方文档 yarn a...
    99+
    2024-04-02
  • vue3使用vue-router及路由权限拦截方式
    目录使用vue-router及路由权限拦截vue3使用vue-router讲解使用vue-router及路由权限拦截 vue3 使用 vue-router 的方式和 vue2 基本一...
    99+
    2024-04-02
  • Vue.js中如何使用vue-router路由
    本篇文章为大家展示了Vue.js中如何使用vue-router路由,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。vue-router是Vue.js官方的路由插件,它...
    99+
    2024-04-02
  • vue如何在store仓库中使用路由
    目录在store仓库中使用路由在js文件中使用vue的router和store在store仓库中使用路由 在仓库中,this的指向指的是store,但是在一般的工程,我们有可能会需要...
    99+
    2024-04-02
  • vue-router中如何使用嵌套路由
    vue-router中如何使用嵌套路由,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。模板抽离我们已经学习过了Vue模板的另外定义形式,使用...
    99+
    2024-04-02
  • vue3中怎么使用router路由实现跳转传参
    本文小编为大家详细介绍“vue3中怎么使用router路由实现跳转传参”,内容详细,步骤清晰,细节处理妥当,希望这篇“vue3中怎么使用router路由实现跳转传参”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。一...
    99+
    2023-07-06
  • vue3中使用vuex和vue-router的详细步骤
    目录vuex 安装使用步骤index.js文件main.js文件组件中使用vuexvue-router安装基本配置index.jsmain.jsvue3中路由的使用axio...
    99+
    2022-12-08
    vue3使用vuex vue3使用vue-router
  • Vue3中Vuex如何使用
    这篇文章主要介绍“Vue3中Vuex如何使用”,在日常操作中,相信很多人在Vue3中Vuex如何使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Vue3中Vuex如何使用”的疑惑有所帮助!接下来,请跟着小编...
    99+
    2023-07-06
  • Vue3使用vue-router如何实现路由跳转与参数获取
    目录vue-router实现路由跳转与参数获取路由跳转和传参路由跳转三种方法的总结一、第一种二、第二种三、第三种vue-router实现路由跳转与参数获取 路由跳转和传参 impor...
    99+
    2024-04-02
  • vue3+vite中如何使用vuex
    本篇内容主要讲解“vue3+vite中如何使用vuex”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“vue3+vite中如何使用vuex”吧!具体步骤:安装vuex( vue3建议 4.0+ )...
    99+
    2023-07-04
  • Vuex的store中的Module用法及说明
    目录Vuex的store中的Module1.单一状态树2.modules3.模块内部的 mutation 和 getters4.模块内部的 action5.命名空间总结Vuex的st...
    99+
    2023-01-10
    Vuex的store store中的Module Vuex store Module
  • vue3中7种路由守卫如何使用
    全局前置守卫1.使用方式:main.js中配置,在路由跳转前触发,这个钩子作用主要是用于登录验证,也就是路由还没跳转提前告知,以免跳转了再通知就为时已晚2.代码:router.beforeEach((to,from,next)=>{}...
    99+
    2023-05-14
    Vue3
  • Vue如何使用Vuex封装并使用store
    这篇文章主要介绍“Vue如何使用Vuex封装并使用store”,在日常操作中,相信很多人在Vue如何使用Vuex封装并使用store问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Vue如何使用Vuex封装并使...
    99+
    2023-07-04
  • vue如何使用router-link实现路由跳转
    这篇文章主要介绍vue如何使用router-link实现路由跳转,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!router-link 【实现跳转最简单的方法】<router-link to='...
    99+
    2023-06-18
  • Vue3中怎么使用vue-router实现路由跳转与参数获取
    今天小编给大家分享一下Vue3中怎么使用vue-router实现路由跳转与参数获取的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下...
    99+
    2023-06-29
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作