vue路由跳转的三种方式

人气:483 ℃/2023-01-26 05:35:13

vue路由跳转的三种方式是怎样的呢?下面就让我们一起来了解一下吧:

1、router-link,这属于实现跳转最简单的方式。

<router-link to='需要跳转到的页面的路径>

浏览器在解析时,会将它解析成一个类似于<a> 的标签。

div和css样式略

<li >

<router-link to="keyframes">点击验证动画效果 </router-link>

</li>

不要忘记了给需要跳转的路径在需要提前在router/index.js下引入。

2、this.$router.push({ path:’/user’})

常常用于路由传参,用法与第三种相似。

区别是:

1.query引入方式

params只可以用name来引入路由。

而query需要用path引入。

2.query传递方式

与ajax中get传参类似,在浏览器地址栏中显示参数。

params则类似于post,在浏览器地址栏中不显示参数。

在helloworld.vue文件中

<template>

.....

<li @click="change">验证路由传参</li>

</template>

<script>

export default {

data () {

return {

id:43, //需要传递的参数

}

},

methods:{

change(){

this.$router.push({ //核心语句

path:'/select', //跳转的路径

query:{ //路由传参时push和query搭配使用 ,作用时传递参数

id:this.id ,

}

})

}

}

}

</script>

在select.vue文件中

<template>

<select>

<option value="1" selected="selected">成都</option>

<option value="2">北京</option>

</select>

</template>

<script>

export default{

data(){

return{

id:'',

}

},

created(){ //生命周期里接收参数

this.id = this.$route.query.id, //接受参数关键代码

console.log(this.id)

}

}

</script>

当然也可以在使用的标签中通过v-if = ‘id == 1’或是else-if = 'id == 2'等进行区分拼接。

3、this.$router.replace{path:‘/’ }类似,就不做过多的介绍了。

以上就是小编的分享了,希望能够帮助到大家。

vuex的五个属性及使用方法

Vuex的五个属性和使用方法

Vuex 是什么?

Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式 库。它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。

一张图了解Vuex

Vuex 的五个属性及使用方法

一、State

由于 Vuex 的状态存储是响应式的,从 store 实例中读取状态最简单的方法就是在计算属性中返回某个状态:

// 创建一个 Counter 组件const Counter = { template: `<div>{{ count }}</div>`, computed: { count () { return this.$store.state.count } }}

每当 this.$store.state.count 变化的时候, 都会重新求取计算属性,并且触发更新相关联的 DOM。

二、Getters

Vuex 允许我们在 store 中定义“getter”(可以认为是 store 的计算属性)。

const store = createStore({ state: { todos: [ { id: 1, text: '...', done: true }, { id: 2, text: '...', done: false } ] }, getters: { doneTodos: (state) => { return state.todos.filter(todo => todo.done) } }})

import { mapGetters } from 'vuex'export default { // ... computed: { // 使用对象展开运算符将 getter 混入 computed 对象中 ...mapGetters([ 'doneTodos', // ... ]) }}

三、Mutation

更改 Vuex 的 store 中的状态的唯一方法是提交 mutation。

const store = createStore({ state: { count: 1 }, mutations: { increment (state) { // 变更状态 state.count } }})

你不能直接调用一个 mutation 处理函数。这个选项更像是事件注册:“当触发一个类型为 increment 的 mutation 时,调用此函数。”要唤醒一个 mutation 处理函数,你需要以相应的 type 调用 store.commit 方法:

store.commit('increment')

四、Action

Action 类似于 mutation,不同在于:

让我们来注册一个简单的 action:

const store = createStore({ state: { count: 0 }, mutations: { increment (state) { state.count } }, actions: { increment (context) { context.commit('increment') } }})

Action 通过 store.dispatch 方法触发:

store.dispatch('increment')

五、Module

由于使用单一状态树,应用的所有状态会集中到一个比较大的对象。当应用变得非常复杂时,store 对象就有可能变得相当臃肿。

const moduleA = { state: () => ({ ... }), mutations: { ... }, actions: { ... }, getters: { ... }}const moduleB = { state: () => ({ ... }), mutations: { ... }, actions: { ... }}const store = createStore({ modules: { a: moduleA, b: moduleB }})store.state.a // -> moduleA 的状态store.state.b // -> moduleB 的状态

tips:

当刷新页面,项目重新加载,Vuex 会重置,所有状态回到初始状态,使用 vuex-persistedstate 可以避免这种情况发生。

1.安装

npm install --save vuex-persistedstate

2.配置

在Vuex初始化时候,作为组件引入。

import persistedState from 'vuex-persistedstate'export default new Vuex.Store({ // ... plugins: [persistedState()]})

推荐

首页/电脑版/网名
© 2025 NiBaKu.Com All Rights Reserved.