Vue.js 路由
Vue.js 没有内置的路由功能,但是你可以很容易地创建一个支持路由的单页应用,使用官方推荐的 vue-router 库。
你需要按照以下步骤安装 Vue.js 的路由器。你可以通过 CDN 直接下载路由器,或者使用 NPM 或 Github。
直接从 CDN 下载
你可以直接从 CDN 下载最新版本的 vue-router,它可在 https://unpkg.com/vue-router/dist/vue-router.js 上获得。
unpkg.com 包含基于 npm 的 CDN 链接,并且始终更新到最新版本。在下载 unpkg.com 文件之后,将其托管到服务器上,并使用以下方式与 Vue.js 一起使用 script 标签。
如果你不想下载它,也可以像下面这样使用它:
使用 NPM 安装路由器
打开 Node.js 命令提示符并运行以下命令来安装 vue-router。
使用 GitHub 安装路由器
运行以下命令从 GitHub 克隆路由器存储库:
让我们通过一个简单的示例来了解 Vue.js 中路由的概念:
示例
Index.html 文件:
Index.js 文件:
让我们使用一个简单的 CSS 文件使输出更有吸引力。
Index.css 文件:
程序执行后,您将看到以下输出:
输出:
单击路由器链接2,会将其重定向到以下结果。
示例解释
在上面的示例中,我们如下添加了vue-router.js文件:
在下面的代码中,我们创建了两个路由链接。我们在标签中定义这些路由链接:
这里,<router-link>
是一个组件,用于导航到HTML内容并将其显示给用户。to属性指定了目标。例如,显示链接的文件,您需要单击该链接。
路由器在脚本部分中初始化,有两个常量已创建如下:
在上面的代码中,我们指定了单击路由链接时将显示的模板。
接下来是路由常量,我们在其中定义URL中要显示的路径。
路由用于定义路径和组件。当用户单击路由链接时,路径将显示在输出中。
组件接受模板名称以显示。路径从路由到属性需要匹配。
例如,
现在,我们使用以下代码创建VueRouter实例:
VueRouter构造函数将路由作为参数。我们使用以下代码将路由器对象分配给主Vue实例。
执行上述示例后,您将在浏览器中看到输出。如果您可以检查和检查路由器链接,我们将发现它会向活动元素添加类。添加的类是class =“router-link-exact-active router-link-active”。
将属性传递给Router链接
让我们看看如何将属性传递给Router链接。在上面的示例中,我们将属性“to”传递给路由链接,如下所示:
该属性可以通过许多其他方式传递给路由链接。## to 属性
它用于指定传递给 <router-link>
的目标路径。点击链接时,它会在内部传递值给 router.push()。该值必须是一个字符串或一个位置对象。有三种方法可以使用“to”属性传递值。
示例1:
示例2:
示例3:
我们已经在上面的示例中使用了示例1的方法。下面看看第二种和第三种方法的示例。
Index.html 文件:
Index.js 文件:
程序执行后,你将看到以下输出结果:
输出结果:
现在,点击路由器链接3,您将在URL中看到设置名称作为查询字符串。看输出:
replace属性
replace属性用于替换路由链接并调用router.replace()而不是router.push()。如果使用replace属性,则不会保存导航历史记录。
Index.html文件:
Index.js文件与原文件相同。
程序运行后,您将看到以下输出:
输出:
您可以看到,当单击“此链接被替换”链接时,url中的名称会更改。## append属性
append标签用于将<router-link>
链接添加到路径中,以使路径相对于当前路由。
Index.html文件:
Index.js文件:
让我们使用一个简单的CSS文件使输出更具吸引力。
Index.css文件:
程序执行后,你会看到以下输出:
输出:
append属性
append标签用于与<router-link>
一起使用,使路径保持相对路径。让我们举个例子。
例子:
Index.html文件:
Index.js文件:
我们使用一个简单的CSS文件使输出更有吸引力。
Index.css文件:
程序执行后,您将看到以下输出结果:
输出结果:
<router-link>
会渲染为一个标签。当你想将它渲染为其他标签时,可以使用 tag 属性。例如,如果你想将 <router-link>
渲染为 “span”,你应该将它指定为 tag=”span”。以下是一个简单的例子。
例子:
Index.html 文件:
Index.js 文件:
与之前的例子中使用的相同。
程序执行后,你将会看到以下输出:
输出:
在上面的例子中,你可以看到现在显示的标签是 span 标签。它们看起来不像是可点击的链接,但你可以点击它们。现在点击路由链接 3 并查看结果。
active-class 属性
当你想使 <router-link>
激活时,可以添加 active-class 属性。它用于显示路由链接已激活。添加方法为 active-class=”_active”.
以下代码演示了如何在一个例子中使用它。
语法:
它将使 “Click on Router Link 2” 为激活路径,而 “Click on Router Link 3” 不会发生变化。
exact-active-class 属性
exact-active-class 属性配置了在链接与精确匹配时应用的激活 CSS 类。默认的精确激活类应用为 router-link-exact-active。
以下代码演示了如何在一个例子中使用它。
语法:
事件属性
在之前的例子中,你已经看到router-link默认绑定的点击事件。当你点击链接时,路由链接会显示。你可以使用事件属性来改变默认的事件。看下面的例子。
例子:
Index.html文件:
Index.js文件:
Index.js文件与上面的例子相同。
程序执行后,你将看到以下输出:
输出:
当你将鼠标悬停在第一个链接上时,你将看到以下结果。