我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Vuex与Vuerouter的使用详细讲解

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Vuex与Vuerouter的使用详细讲解

Vuex的使用

在Vue中实现集中式状态(数据)管理的一个Vue插件,对vue应用中多个组件的共享状态进行集中式的管理(读/写),也是一种组件间通信的方式,用于任意组件间的通信

state:存储数据的地址

actions:中转站,可发送异步请求增加判断

mutations:真正改state数据的地方

Vuex的使用流程

- 第一步:在state中定义变量

- 第二步:在组件中通过 this.$store.dispatch('actions中定义的函数'),触发actions中得函数执行

- 第三步:在actions中的函数中,调用context.commit('mutations中定义的函数')

- 第四步:在mutations中定义的函数实现真正的修改state中的数据

- 第五步:页面中只要使用$store.state.变量,变量变化,页面就变化 实现了组件间的通信

⚠️ 注意点:

- 在组件中可以直接调用commit触发(mutations中定义的函数)

- 在组件中可以直接修改state中定义变量

Vuex的执行流程图

执行流程:

- 用户进行操作,通过dipatch提交一个actions

-actions接收到这个事件之后,在actions中可以执行一些异步或者同步操作,然后根据不同的情况去分发给不同的mutations

-actions通过commit去触发mutations

-最后mutations去更新state数据值,state更新之后,就会通知vue渲染页面并显示

Vuex伪代码

   export default new Vuex.Store({
    state:{
        // 存放真正的变量,也就是数据
    },
    mutations:{
        // 修改state的数据操作
    },
    actions:{
        // 可以进行异步同步请求,校验权限等操作
    }
})

Vue-router的使用

官方提供的用来实现SPA 的vue插件,有了它以后我们可以写很多页面组件,通过地址栏路径的不同来显示不同的页面组件

基本使用流程

- 安装插件:

cnpm install vue-router@4

- 在class="lazy" data-src目录下新建router文件夹内再创index.js文件用来存放路由

- 在index.js中引入插件

import Vue from 'vue'//引入vue
import VueRouter from 'vue-router'//引入vue-router路由模块
Vue.use( VueRouter ) //使用vue-router这个第三方插件

- 创建了一个router对象实例并导出

const routes = [
    {
        path: '/',
        name: 'home',
        component: Home
    },
]
export default router //导出

-入口文件main.js中引入路由实例 router

new Vue({
  router,
  render: h => h(App)
}).$mount('#app')

- 在App.vue中用一个 router-view 的组件来给路由一个展示区域

<template>
  <div id="app">
    <router-view>
    </router-view>
  </div>
</template>

路由的跳转

- 在html中使用

router-link组件:可以在不重新加载页面的情况下更改URl处理URl的生成以及编码

to:来指定跳转的链接

<div id ="app">
    <p>
    <router-link to="/home">首页</router-link>
    </p>
</div>

- 在js中使用

当需要先进行权限判断的时候需要在js中进行跳转,校验通过跳转删除校验不通过跳转到登陆

export default {
    Todel() {
        if (usernane) {
            this.$router.push('/del')
        }else{
            this.$router.push('/login')
        }
    }
}

携带参数的路由跳转

- 在请求地址中带参数

<div id ="app">
    <p>
    <router-link to="/login/?username=abc&password=123">用户登陆</router-link>
    </p>
</div>

在跳转页面的组件中接受:

this.$route.query.username
this.$route.query.password

- 在地址中带参数

<div id ="app">
    <p>
    <router-link to="/bookList/1">展示书籍</router-link>
    </p>
</div>

在跳转页面的组件中接受:

this.$route.params.

路由嵌套

关键字:children

在router/index.js相应的路由中通过关键字进行路由的嵌套

const routes = [
    {
        path: '/login',
        name: 'login',
        component: Login,
        children: [
            {
                name: 'books',
                path: 'books',
                component: Books
            },
]

⚠️ 注意点:

- 必须要在Login组件中加<router-view></router-view>用来渲染子路由

- 只会变更login下router-view包裹的位置

路由守卫

- 前置路由守卫:有时候根据用户的权限区分普通用户访问的接口与超级用户才能访问的接口,设置守卫来区分

router.beforeEach((to, from, next) => {
    console.log('前置路由守卫', to, from)
    if (to.name == 'shoppingcart') {
        let name = localStorage.getItem('name')
        if (name) {
            next()
        } else {
            alert('不好意思没有权限')
        }
    } else {
        next()
    }
})

- 后置路由守卫:用来设置跳转后页面标题的名字,根据页面组件名字设置页面名

router.afterEach((to,from)=>{
	console.log('后置路由守卫',to,from)
	document.title = to.name
})

到此这篇关于Vuex与Vue router的使用详细讲解的文章就介绍到这了,更多相关Vuex与Vue router内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Vuex与Vuerouter的使用详细讲解

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

下载Word文档

猜你喜欢

Vuex与Vuerouter的使用详细讲解

在看这篇文章的几点要求:需要你先知道Vuex与Vue-Router是个什么东西,用来解决什么问题,以及它的基本使用。如果你还不懂的话,建议上官网了解下Vuex与Vue-Router的基本使用后再回来看这篇文章
2022-11-13

Vuerouter配置与使用分析讲解

第一次写Vue项目,要用到router.js,看了一下官方文档,还是很懵逼,不知道怎么配置,又去看视频查资料,最后终于搞定了。话不多说,先上代码,我再讲一些要注意的细节
2022-12-23

AndroidSurfaceView与TextureView使用方法详细讲解

SurfaceView和TextureView都继承View,与普通的View不同的是,它俩可以在独立线程中绘制渲染,性能更高,所以常被应用在对绘制速率要求比较高的场景,比如相机预览,视频播放等等
2022-11-13

Reactjsx转换与createElement使用超详细讲解

这篇文章主要介绍了Reactjsx转换与createElement使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习吧
2022-11-13

C++stack与queue使用方法详细讲解

stack是一种容器适配器,专门用在具有后进先出操作的上下文环境中,其删除只能从容器的一端进行元素的插入与提取操作;队列是一种容器适配器,专门用于在FIFO上下文(先进先出)中操作,其中从容器一端插入元素,另一端提取元素
2023-01-04

C++BoostTokenizer使用详细讲解

Boost是为C++语言标准库提供扩展的一些C++程序库的总称。Boost库是一个可移植、提供源代码的C++库,作为标准库的后备,是C++标准化进程的开发引擎之一,是为C++语言标准库提供扩展的一些C++程序库的总称
2022-11-16

React组件的使用详细讲解

React组件分为函数组件与class组件;函数组件是无状态组件,class称为类组件;函数组件只有props,没有自己的私有数据和生命周期函数;class组件有自己私有数据(this.state)和生命周期函数
2022-11-16

JavaWebServletContext基础与应用详细讲解

ServletConfig对象,叫Servlet配置对象。主要用于加载配置文件的初始化参数。我们知道一个Web应用里面可以有多个servlet,如果现在有一份数据需要传给所有的servlet使用,那么我们就可以使用ServletContext对象了
2023-01-05

编程热搜

目录