vue3中的useRoute和useRouter
阅读数:255 评论数:0
跳转到新版页面分类
html/css/js
正文
一、useRouter传参的方式
import { useRouter } from 'vue-router'
export default {
setup() {
const userRouter = useRouter()
userRouter.push({
name: 'Home',
params: {
name: 'echohye',
age: 18
}
})
}
}
注意params只与name搭配生效,name就是route配置时的name
通过useRoute来接收params参数
import { useRoute } from 'vue-router'
export default {
setup() {
const route = useRoute()
console.log(route.params)
}
}
这些参数会跟在url后。
import { useRouter } from 'vue-router'
export default {
setup() {
const userRouter = useRouter()
userRouter.push({
path: '/',
query: {
name: 'echohye',
age: 18
}
})
}
}
path和query是一对。
通过useRoute来接收query参数。
import { useRoute } from 'vue-router'
export default {
setup() {
const route = useRoute()
console.log(route.query)
}
}
二、useRouter的push和replace
push会在浏览器的历史记录中追加一个新的记录,可以通过window.history看到这个记录,当前push时,设置replace为true,也可达到同replace相同的效果。
import { useRouter } from 'vue-router'
export default {
setup() {
const userRouter = useRouter()
userRouter.push({
path: '/about/1',
replace: true
})
}
}
replace是替换当前的路由。
import { useRouter } from 'vue-router'
export default {
setup() {
const userRouter = useRouter()
userRouter.replace({
path: '/about/1',
})
}
}
三、useRoute
在vue3中,useRoute(接收参数)相当于以前的this.$route,而useRouter(传递参数)相当于this.$router。
import { useRouter, useRoute } from 'vue-router'
export default {
setup() {
const router = useRouter()
const route = useRoute()
function pushWithQuery(query) {
router.push({
name: 'about',
query: {
...route.query,
},
})
}
},
}
四、Vue Router其它的API
NavigationFailureType | 导航失败类型 |
START_LOCATION | 默认开始位置 |
createMemoryHistory | 使用记忆历史模式 |
createWebHashHistory | 创建哈希模式 |
isNavigationFailure | 导航是否失败 |
onBeforeRouteLeave | 导航守卫,setup中使用,在当前位置的组件将要离开时触发。 |
onBeforeRouteUpdate | 导航守卫,setup中使用,在当前位置即将更新时触发。 |
parseQuery | 解析query参数 |
stringifyQuery | 字符串query参数 |
useLink | 将RouterLink 的内部行为作为一个组合式 API 函数公开。 |
相关推荐
一、生命周期
1、vue2生命周期
beforeCreate #实例初始化之后,进行数据侦听和事件/侦听器的配置之前同步调用
created #实例创建完成后被立即同步调用
beforeMount #
一、使用pnpm新建项目
可以使用npm 或yarn或pnpm来初始化Vite项目
pnpm create vite xxx(项目名称)
#选择vue
#选择js
cd xxx (进入项目目录)
#安
一、概述
<script setup> 是在单文件组件(SFC)中使用组合式API的编译时语法糖,解决Vue3.0中setup需要频繁将声明的变量、函数以及import引入的内容通过return向外
一、概述
在vue2中,data函数里返回的值直接为响应式,但在vue3中我们需要使用一些函数才能达到这个效果。
setup函数中拿不到vue的this。
二、常用函数
<template>
<d
缓存页面主要Jul为了防止重复渲染dom,减少加载时间及性能消耗,提高用户体验。
一、旧版的语法
<keep-alive>
<router-view v-if="$route.meta.kee
一、在main.js挂载
import { createApp } from 'vue'
import App from './App.vue'
import router from './route
一、概述
在vue3中没有$refs这个对象,可以使用如下方法
<template>
<div><input type="text" ref="txt1" value="hello" /></div>
方式一、全局引入
全局引入element之后事,element已经在app.config.globalProperties添加了全局方法$message,所以可以在组件中直接使用。
方式二、按需引入
方案一:
使用app.config.globalProperties.
// 初始化相关
import { createApp } from 'vue'
import { nextTick } fro