1.Vue3中的源码router-link
2.vue.js学习之router-link
3.vue-routerä¹link-to
4.vue路由跳转
5.vueçrouter-link
6.vue跳转页面
Vue3中的router-link
在Vue3中,采用的源码是4版本的路由,此版本中router-link已不再具备tag属性,源码仅能被编译成a标签形式。源码若欲使用其他标签进行路由跳转,源码需采取替代方法。源码水库数字孪生 源码
替代方式之一,源码可直接利用点击事件切换路由,源码通过@click指令搭配$router.replace方法,源码实现所需功能。源码具体操作中,源码需确保所有属性正确无误,源码以确保路由跳转顺利进行。源码
另一种选择是源码直接舍弃router-link,改以点击事件来控制路由切换。源码此方法同样需要正确配置@click指令和$router.replace方法,确保其与当前页面状态相匹配,实现预期的路由跳转效果。
总结而言,Vue3中使用路由时,需对router-link的hasset源码使用方法有所调整。通过替代方法或直接舍弃router-link,以点击事件来控制路由切换,均可实现所需功能。关键在于正确配置相关指令和方法,确保每一步操作无误,以达到预期的路由跳转效果。
vue.js学习之router-link
在Vue2.0中,先前的v-link指令已被组件替代,此组件支持以下属性参数。
例如:
组件在具有路由功能的getLastModified源码应用中用于导航,通过to属性指定目标地址,并默认渲染带有正确链接的标签。配置tag属性可生成其他标签类型。当目标路由成功激活时,链接元素自动添加一个表示激活的css类名。
相比写死的链接,组件更具灵活性。通过设置append属性,链接前可添加基路径。例如,计数源码从/a导航至一个相对路径b,未配置append时路径为/b,配置后路径变为/a/b。
若需链接使用"精确匹配模式",可利用exact属性。更多关于激活链接类名的例子,可进行运行查看。
若要将"激活时的CSS类名"应用于外层元素而非标签本身,通过渲染外层元素包裹内层的原生标签。
如使用路径/foo,源码列子此链接将作为真实链接存在,获得正确的href,同时"激活时的CSS类名"将设置到外层的元素上。
在个人博客SF中,此方法能灵活地应用CSS类名,为导航元素提供更具个性化的样式。
vue-routerä¹link-to
router-link to
表示ç®æ è·¯ç±çé¾æ¥ãå½è¢«ç¹å»åï¼å é¨ä¼ç«å»ætoçå¼ä¼ å°router.push()ï¼æ以è¿ä¸ªå¼å¯ä»¥æ¯ä¸ä¸ªå符串æè æ¯æè¿°ç®æ ä½ç½®ç对象ã
<!-- å符串 -->
<router-linkto="home">Home</router-link>
<!-- 渲æç»æ -->
<ahref="home">Home</a>
<!-- ä½¿ç¨ v-bind ç JS è¡¨è¾¾å¼ -->
<router-link v-bind:to="'home'">Home</router-link>
<!-- ä¸å v-bind ä¹å¯ä»¥ï¼å°±åç»å®å«çå±æ§ä¸æ · -->
<router-link :to="'home'">Home</router-link>
<!-- åä¸ -->
<router-link :to="{ path: 'home' }">Home</router-link>
<!-- å½åçè·¯ç± -->
<router-link :to="{ name: 'user', params: { userId: }}">User</router-link>
<!-- 带æ¥è¯¢åæ°ï¼ä¸é¢çç»æ为 /register?plan=private -->
<router-link :to="{ path: 'register', query: { plan: 'private' }}">Register</router-link>
vue路由跳转
vue路由跳转的方法是什么呢?不知道的小伙伴来看看小编今天的分享吧!
方法一:
router-link (声明式路由)
1、 不带参数
router-link :to={ name:home}
router-link :to={ path:/home} //name,path都行, 建议用name
// 注意:router-link中链接如果是/开始就是从根路由开始,如果开始不带/,则从当前路由开始。
2、带参数
router-link :to={ name:home, params: { id:1}}
// params传参数 (类似post)
// 路由配置 path: /home/:id 或者 path: /home:id
// 不配置path ,第一次可请求,刷新页面id会消失
// 配置path,刷新页面id会保留
// html 取参 $route.params.id
// script 取参 this.$route.params.id
router-link :to={ name:home, query: { id:1}}
方法二:
router.push(编程式路由)
// 字符串
router.push(home)
// 对象
router.push({ path: home })
// 命名的路由
router.push({ name: user, params: { userId: }})
// 带查询参数,变成 /register?plan=private
router.push({ path: register, query: { plan: private }})
注意:如果提供了 path,params 会被忽略,上述例子中的 query 并不属于这种情况。取而代之的是下面例子的做法,你需要提供路由的 name 或手写完整的带有参数的 path:
const userId =
router.push({ name: user, params: { userId }}) // - /user/
router.push({ path: `/user/${ userId}` }) // - /user/
// 这里的 params 不生效
router.push({ path: /user, params: { userId }}) // - /user
方法三:
this.$router.push() (函数里面调用)
1、不带参数
this.$router.push(/home)
this.$router.push({ name:home})
this.$router.push({ path:/home})
2、 query传参
this.$router.push({ name:home,query: { id:1}})
this.$router.push({ path:/home,query: { id:1}})
// html 取参 $route.query.id
// script 取参 this.$route.query.id
3、params传参
this.$router.push({ name:home,params: { id:1}}) // 只能用 name
// 路由配置 path: /home/:id 或者 path: /home:id ,
// 不配置path ,第一次可请求,刷新页面id会消失
// 配置path,刷新页面id会保留
// html 取参 $route.params.id
// script 取参 this.$route.params.id
4、query和params区别
query类似 get, 跳转之后页面 url后面会拼接参数,类似?id=1, 非重要性的可以这样传, 密码之类还是用params刷新页面id还在
params类似 post, 跳转之后页面 url后面不会拼接参数 , 但是刷新页面id会消失
方法四:
this.$router.replace() (用法同上,push)
方法五:
this.$router.go(n) ()
this.$router.go(n)
向前或者向后跳转n个页面,n可为正整数或负整数
ps : 区别
this.$router.push
跳转到指定url路径,并想history栈中添加一个记录,点击后退会返回到上一个页面
this.$router.replace
跳转到指定url路径,但是history栈中不会有记录,点击返回会跳转到上上个页面 (就是直接替换了当前页面)
this.$router.go(n)
向前或者向后跳转n个页面,n可为正整数或负整数
注意:
获取路由上面的参数,用的是$route,后面没有r
params是路由的一部分,必须要有。query是拼接在url后面的参数,没有也没关系。
params一旦设置在路由,params就是路由的一部分,如果这个路由有params传参,但是在跳转的时候没有传这个参数,会导致跳转失败或者页面会没有内容。
params、query不设置也可以传参,但是params不设置的时候,刷新页面或者返回参数会丢失,
vueçrouter-link
router-linkçå±æ§ï¼ä½¿ç¨
router-linkçå±æ§æï¼
to \replace\append\tag\active-class\exact\exact-active-class\event
1.to(string)----------------å¿ å¡«å±æ§ï¼è·³è½¬è·¯å¾
2.replace(true/false)
å©ç¨ replace ï¼å½ç¹å»æ¶ï¼ä¼è°ç¨ router.replace() èä¸æ¯ router.push()ï¼äºæ¯å¯¼èªåä¸ä¼çä¸ history è®°å½ã
<router-link:to="{ path:'/abc'}"replace></router-link>
3.appendï¼true/falseï¼
设置 append å±æ§åï¼åå¨å½å (ç¸å¯¹) è·¯å¾åæ·»å åºè·¯å¾ãä¾å¦ï¼æä»¬ä» /a 导èªå°ä¸ä¸ªç¸å¯¹è·¯å¾ bï¼å¦æ没æé ç½® appendï¼åè·¯å¾ä¸º /bï¼å¦æé äºï¼å为 /a/b
4.tag(string)
ææ¶åæ³è¦ 渲æææç§æ ç¾ï¼ä¾å¦
ã äºæ¯æä»¬ä½¿ç¨ tag prop ç±»æå®ä½ç§æ ç¾ï¼åæ ·å®è¿æ¯ä¼çå¬ç¹å»ï¼è§¦å导èªã
5.active-class(string)
设置é¾æ¥æ¿æ´»æ¶ä½¿ç¨ç CSS ç±»åãé»è®¤å¼å¯ä»¥éè¿è·¯ç±çæé é项 linkActiveClass æ¥å ¨å±é ç½®ã
<router-linkto="/productService"active-class="active">产åæå¡</router-link>
1
å ¨å±é ç½®ï¼
constcreateRouter=()=>newRouter({ mode:'history',// require service supportlinkActiveClass:'is-active',scrollBehavior:()=>({ y:0}),routes:constantRoutes})
1
2
3
4
5
6
6.exactï¼true/falseï¼
âæ¯å¦æ¿æ´»âé»è®¤ç±»åçä¾æ®æ¯å å«å¹é ã 举个ä¾åï¼å¦æå½åçè·¯å¾æ¯ /a å¼å¤´çï¼é£ä¹ ä¹ä¼è¢«è®¾ç½® CSS ç±»åã
æç §è¿ä¸ªè§åï¼æ¯ä¸ªè·¯ç±é½ä¼æ¿æ´» <router-link to="/">ï¼ä¸è¬é¡¹ç®é¦é¡µé½æ¯pathï¼â/âï¼è¿æ ·å°±æ¯ç¹å»å«ç页é¢é¦é¡µä¹ä¼é«äº®ï¼æ³è¦é¾æ¥ä½¿ç¨â精确å¹é 模å¼âï¼åä½¿ç¨ exact å±æ§ï¼ä¸è¬ä¼é å*exact-active-class*使ç¨
<span><router-linkto="/"exact-active-class="activeIndex":exact="true">é¦é¡µ</router-link></span><span><router-linkto="/productService"active-class="active">产åæå¡</router-link></span><span><router-linkto="/industryConsulting"active-class="active">è¡ä¸èµè®¯</router-link></span><span><router-linkto="/aboutUs"active-class="active">å ³äºæ们</router-link></span>
1
2
3
4
5
6
7
8
9
7.exact-active-class
é ç½®å½é¾æ¥è¢«ç²¾ç¡®å¹é çæ¶ååºè¯¥æ¿æ´»ç classã注æé»è®¤å¼ä¹æ¯å¯ä»¥éè¿è·¯ç±æé å½æ°é项 linkExactActiveClass è¿è¡å ¨å±é ç½®çã
åèæç« ï¼ VUE API
vue跳转页面
vue有三种不同方式实现页面跳转。方法一:Vue:router-lin
<router-link to="/">[跳转到主页]</router-link>
<router-link to="/login">[登录]</router-link>
<router-link to="/logout">[登出]</router-link>
方法二:this.$router.push("/");
<button @click="goHome">[跳转到主页]</button>
export default {
name: "App",
methods: {
// 跳转页面方法
goHome() {
this.$router.push("/");
},
}
方法三:this.$router.go(1);
<button @click="upPage">[上一页]</button>
<button @click="downPage">[下一页]</button>
upPage() {
// 后退一步记录,等同于 history.back()
this.$router.go(-1);
},
downPage() {
// 在浏览器记录中前进一步,等同于 history.forward()
this.$router.go(1);
}
代码示例:
<template>
<div id="app">
<img src="./assets/logo.png">
<router-view/>
<router-link to="/">[跳转到主页]</router-link>
<router-link to="/login">[登录]</router-link>
<router-link to="/logout">[登出]</router-link>
<!-- jascript跳转页面 -->
<button @click="goHome">[跳转到主页]</button>
<!-- 回到上一页 -->
<button @click="upPage">[上一页]</button>
<button @click="downPage">[下一页]</button>
<!-- 回到下一页 -->
</div>
</template>
<script>
export default {
name: "App",
methods: {
// 跳转页面方法
goHome() {
this.$router.push("/");
},
upPage() {
// 后退一步记录,等同于 history.back()
this.$router.go(-1);
},
downPage() {
// 在浏览器记录中前进一步,等同于 history.forward()
this.$router.go(1);
}
}
};
</script>
2024-11-23 08:46
2024-11-23 08:37
2024-11-23 08:09
2024-11-23 07:19
2024-11-23 06:45
2024-11-23 06:21
2024-11-23 06:18
2024-11-23 06:08