皮皮网

【水库数字孪生 源码】【hasset源码】【getLastModified源码】routerlink源码

2024-11-23 08:47:30 来源:form源码模板

1.Vue3中的源码router-link
2.vue.js学习之router-link
3.vue-router之link-to
4.vue路由跳转
5.vue的router-link
6.vue跳转页面

routerlink源码

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>