二、Vue Router 提供的标签组件

router-link 声明式导航组件标签

支持用户在具有路由功能的应用中(点击)导航。通过to属性指定目标地址,默认渲染成<a>标签,可以通过配置tag属性生成别的标签。另外,当目标路由成功激活时,链接元素自动设置一个表示激活的CSS类名。默认是: router-link-active,可以全局配置激活类名,也可以属性的形式设置单个元素的激活类名。

将激活 class 应用在外层元素

外层元素必须是其他标签,<a>标签将作为真实的链接,而激活时的CSS类名则设置到外层的标签元素上。

<router-link tag="li" to="/login">
    <a>Login</a>
</router-link>
<!-- 最终输出结果为: -->
<li class="router-link-exact-active router-link-active"><a href="/login">Login</a></li>

router-link 参数

  • to:属性,表示目标路由的路径,必填。被点击后,内部立刻把to的值传到router.push(),所以这个值可以是一个字符串,或是描述目标位置的对象。
  • replace:属性,点击时,会调用router.replace(),不会留下history记录,这个必须是在history模式下才生效。
  • append:属性,在当前(相对)路径前添加基路径。如:从/a跳转到义工相对路径/b,如果没有配置append,则路径为/b,如果配置了,则为/a/b
  • tag:属性,可以渲染成指定标签
  • active-class:属性,默认值为router-link-active,设置链接激活时使用的CSS类名,可以通过路由的构造选项linkActiveClass来全局配置
  • exact:属性,为路径精确匹配
  • event:属性,可以指定用来触发导航的事件,可以是一个字符串,也可以是一个包含字符串的数组
  • exact-active-class:属性,是设置精准匹配的类名
<!-- to:属性的一些常用方式 -->
<!-- 字符串 -->
<router-link to="home">Home</router-link>
<!-- 渲染结果 -->
<a href="home">Home</a>

<!-- 使用 v-bind 的 JS 表达式 -->
<router-link v-bind:to="'home'">Home</router-link>
<!-- 参数为对象的形式 -->
<router-link :to="{ path: 'home' }">Home</router-link>
<!-- 命名路由 /user/123 -->
<router-link :to="{ name: 'user', params: { userId: 123 }}">User</router-link>
<!-- 带查询参数 /register?plan=private -->
<router-link :to="{ path: 'register', query: { plan: 'private' }}">
Register</router-link>

router-view 路由视图组件(为路由的出口)

<router-view>渲染路径匹配到的视图组件。可以内部嵌套,根据嵌套路径,渲染嵌套组件。可以配合<transition><keep-alive>使用,为以下固定写法:

<transition>
    <keep-alive>
        <router-view></router-view>
    </keep-alive>
</transition>
  • name:属性,默认为default,称之为命名视图,会渲染对应路由配置中的对应组件。用于多视图的处理。

原文地址:https://www.cnblogs.com/yuxi2018/p/11967254.html

时间: 2024-10-08 02:17:35

二、Vue Router 提供的标签组件的相关文章

Vue.extend提供自定义组件的构造器

Vue.extend 返回的是一个“扩展实例构造器”,也就是预设了部分选项的Vue实例构造器.经常服务于Vue.component用来生成组件,可以简单理解为当在模板中遇到该组件名称作为标签的自定义元素时,会自动调用“扩展实例构造器”来生产组件实例,并挂载到自定义元素上. 自定义无参数标签 我们想象一个需求,需求是这样的,要在博客页面多处显示作者的网名,并在网名上直接有链接地址.我们希望在html中只需要写<message></message> ,这和自定义组件很像,但是他没有传递

04 Vue Router路由管理器

路由的基本概念与原理 Vue Router Vue Router (官网: https://router.vuejs.org/zh/)是Vue.js 官方的路由管理器. 它和vue.js的核心深度集成,可以非常方便的用于SPA应用程序的开发. Vue Router包含的功能有: 支持HTML5 历史模式或hash模式 支持嵌套路由 支持路由参数 支持编程式路由 支持命名路由 vue-router的基本使用 基本使用步骤 1.引入相关的库文件 导入vue文件为全局window对象挂载Vue构造函数

vue异步组件和vue.router异步加载

以前在使用angular进行开发时,始终没有处理好异步加载的问题,最多只能使用requirejs异步加载controller里面的内容.导致后来项目扩大的时候,性能问题十分蛋疼.最后我竟然把单页面引用拆成了多页面应用,感觉好囧... 后来尝试用vue写一个项目,配合则webpack,发现效果相当的好.但是vue的异步组件文档太误导人了,让我尝试了好久才发现怎么用.文档上是这样写的: Vue.component('async-webpack-example', function (resolve)

Vue Router 使用方法

安装 #直接下载 / CDN https://unpkg.com/vue-router/dist/vue-router.js Unpkg.com 提供了基于 NPM 的 CDN 链接.上面的链接会一直指向在 NPM 发布的最新版本. 你也可以像 https://unpkg.com/[email protected]/dist/vue-router.js 这样指定 版本号 或者 Tag. 在 Vue 后面加载 vue-router,它会自动安装的: <script src="/path/to

vue router 导入方式

vue router 的路由导入方式可用以下两种: 一:直接导入 import Hello from '@/components/Hello' @是在webpack.base.conf.js 配置: resolve: { extensions: ['.js', '.vue', '.json'], alias: { 'vue$': 'vue/dist/vue.esm.js', '@': resolve('src') } } 二 :路由懒加载方式 当打包构建应用时,Javascript包会变得非常大

二十二、android中application标签说明

<application> <applicationandroid:allowClearUserData=["true" | "false"]android:allowTaskReparenting=["true" | "false"]android:backupAgent="string"android:debuggable=["true" | "false

Vue:router的beforeEach与afterEach钩子函数

在路由跳转的时候,我们需要一些权限判断或者其他操作.这个时候就需要使用路由的钩子函数. 定义:路由钩子主要是给使用者在路由发生变化时进行一些特殊的处理而定义的函数. 总体来讲vue里面提供了三大类钩子,两种函数1.全局钩子2.某个路由的钩子3.组件内钩子 两种函数: 1.Vue.beforeEach(function(to,form,next){}) /*在跳转之前执行*/ 2.Vue.afterEach(function(to,form))/*在跳转之后判断*/ 全局钩子函数 顾名思义,它是对

Vue动态加载异步组件

背景: 目前我们项目都是按组件划分的,然后各个组件之间封装成产品.目前都是采用iframe直接嵌套页面.项目中我们还是会碰到一些通用的组件跟业务之间有通信,这种情况下iframe并不是最好的选择,iframe存在跨域的问题,当然是postMessage还是可以通信的,但也并非是最好的.目前有这么一个场景:门户需要制作通用的首页和数据概览页面,首页和数据概览页面通过小部件来自由拼接.业务组件在制作的时候只需要提供各个模块小部件的url就可以了,可是如果小部件之间还存在联系呢?那么iframe是不好

Vue.js路由管理器 Vue Router

起步 HTML <script src="https://unpkg.com/vue/dist/vue.js"></script> <script src="https://unpkg.com/vue-router/dist/vue-router.js"></script> <div id="app"> <h1>Hello App!</h1> <p>