问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

如何利用vue组件 动态生成router-link

发布网友 发布时间:2022-04-22 03:44

我来回答

3个回答

懂视网 时间:2022-04-22 15:12

vue中的router-link属性有以下属性值:to相当于herf标签用于添加跳转内容,replace用于页面切换时不会留下历史记录以及tag将router-link渲染成相应的标签等等

在vue中,vue.js与 vue-router 两者结合在一起可以实现简单的单页面应用,其中<router-link>是一个组件,主要用于设置导航的链接来实现不同的HTML内容切换。接下来在文章中将为大家具体介绍这一属性,具有一定的参考价值,希望对大家有所帮助。

【推荐课程:Vue教程】

router-link标签

在vue1.0版本中的仍然用a标签来实现链接跳转功能,但链接地址与html中不同,它是采用v-link属性来控制。但是在2.0版本中a标签就被替换成了rount-link属性,但是最终在页面上显示还是会被渲染成a标签。接下来将要详细的介绍该属性中的各个值的用法

router-link属性值详解

(1)":to" 属性值

这个属性值就相当于a标签中的"herf"属性,后面的内容为跳转链接的内容

<router-link :to="http://www.gxlcms.com/">PHP中文网</router-link>

相当于

<a href="http://www.gxlcms.com/">PHP中文网</a>

(2)"replace" 属性值

replace属性值在routre-link标签中添加的主要目的在于页面切换时不会留下历史记录

<router-link :to="http://www.gxlcms.com/" replace></router-link>

(3)"tag" 属性值

具有tag属性的router-link都会被渲染成相应的标签

<router-link :to="/http://www.gxlcms.com/" tag="li">PHP中文网</router-link>

相当于

<li>PHP中文网</li>

此时的页面中的li同样会起到a标签的作用,因为vue会自动为其绑定点击事件,并跳转页面

(4)"active-class"属性值

这个属性是用于设置激活链接时class属性,也就是当前页面及所有与当前页面地址所匹配的的链接都会被添加class属性

<router-link :to="http://www.gxlcms.com/" active-class="u-link--Active">PHP中文网</router-link>

active-class属性的默认值是router-link-active,所以如果没有设置,就会被渲染为这个class

(5)“append”属性值

设置 append 属性后,则在当前 (相对) 路径前添加基路径。例如,我们从 /a 导航到一个相对路径 b,如果没有配置 append,则路径为 /b,如果配了,则为 /a/b

<router-link :to="{ path: 'relative/path'}" append></router-link>

使用router-link代替a标签的好处

router-link属性在页面中可以渲染为任何元素,比如上述代码中渲染成li标签依然实现了跳转效果。另外当我们点击a标签时可能会重载页面,但是使用router-link后此标签会被vue所监听,跳转链接时就不会刷新页面了。

总结:

热心网友 时间:2022-04-22 12:20

首先,Vue.component的第二个参数是一个配置对象,你这个写法连JS语法都不符合。
其次,template配置应该是一个HTML代码的字符串,所以改成:
Vue.component('sidebar', {
template: '<div><router-link to="/">Go to Foo</router-link><router-link to="/bar">Go to Bar</router-link></div>'
});
Update

(参考资料:https://router.vuejs.org/en/e...)

针对你说的都是引入的情况,代码做如下修改:先按如下顺序依次引入Vue和Vue-router

<script src="https://unpkg.com/vue/dist/vue.js"></script>
<script src="https://unpkg.com/vue-router/dist/vue-router.js"></script>
然后加入如下JS

// 在Vue里面注册VueRouter,这样可以在Vue里面使用`<router-link>`
Vue.use(VueRouter);

// 下面这一段是路由设置和应用根元素绑定,具体可以参照官方文档
// -----------------------------------
var routes = [ ... ]; // 这个是路由的配置,你自己写

// 定义路由VueRouter控件,其中,`{routes}`是`{routes: routes}`的简写,可能是ES6里面的新语法
var router = new VueRouter({routes});

// 创建Vue对象
var app = new Vue({
el: '#app', // 假设绑定的根元素为#app
router, // 此处也是简写
});
然后可以使用Vue.component()语句了,此时,因为注册了Vue-Router组件,<router-link>可以被识别。

热心网友 时间:2022-04-22 13:38

比如有这么个router需要跳转
const router = new VueRouter({
  routes: [
    {
      path: '/user/:userId',
      name: 'user',
      component: User
    }
  ]
})


你的router-link可以这么写

<router-link :to="{ name: 'user', params: { userId: 123 }}">User</router-link>


还可以用编程在代码里写,效果也一样:

router.push({ name: 'user', params: { userId: 123 }})


具体的推荐你看下vue router的官网,里面有详细的说明和例子

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
分手后说过的话精选185句 分手说的精选113句 分手怎么挽回女朋友的句子精选162句 现在工作忙的要死,女朋友因为这跟我分手,我该怎么办? ...任意组成两个不同的两位小数,并把它们改写成以0.001为计数单位... m3/MW▪h怎么换算m3/s▪GW? 交通银行的刷卡金怎么使用呢? 什么时候刷卡金 ...突然前面两条腿好像断了一样 走路前面两腿都无法支撑 吃饭就坐着吃... 王者荣耀:伤害与回复兼备的杨戬,为何不受待见,真废了吗? 人体有哪八大功能? 和她做完40分钟了,我还想和她做,怎么办 关于vue-router跳转问题? 女人做完爱还想要是怎么回事一草根杂志艺术小人完毕 功能和作用的区别是什么? 昨晚刚做完,现在女朋友还想做,这是怎么了? vue-router怎么动态配置,比如根据用户权限不同显... 作用、功能、意义三个词的区别 刚弄完,还想要,怎么办 作用和功能都什么意思 刚做完还想要正常吗 vue router 怎么配置 男友帕帕完很想睡觉,我很精神还想要,怎么办要放... 功能和性能的区别? 我21岁,为什么每次和男朋友要完我还想再要呢?我... 功能等于作用吗 迷你世界怎么刷迷你币 求解 为什么男人做完了又还想要 功能是什么 每次和男朋友完了以后,我真的还想要,但是时间已... 刚跟老婆办完那事,可是老婆还想要我该怎么办啊? vue里面的router-view标签是什么意思 vue-router应用于组件内时的矛盾怎么解决 vue-router的问题,比如一个页面有多个列表,点击其... vue-router怎么给子路由传参 天然大理石有裂缝属于正常现象吗 如何辨别真假椴树蜂蜜 正宗椴树蜜是啥样子的 天然大理石炸裂为什么? vue-router有两个命名路由,其中一个路由下还有嵌... 如何辨别好的椴树蜜 vue-router 可以根据 URL 来获取 routers 定义的 n... 飘窗上安起的飘窗大理石天然的不到三个月就开裂了... 怎么辨别椴树蜂蜜好坏? 椴树蜜和普通蜂蜜的区别 阳台窗户安装天然大理石一个月后有裂缝是属于正常... 剪映电脑版没有蒙版、色度抠图、关键帧吗? 怎么签别椴树蜂蜜真假 天然大理石安装第二天就开裂正常吗? 椴树蜜是什么样了?