路由是指路由器从一个接口上收到数据包, 根据数据包的目的地址进行定向并转发到另一个接口的过程. 前端路由就是通过修改 hash, 在链接后面加井号, 来实现不刷新页面就跳转. 后端路由是每次跳转都刷新页面.
vue.js 路由允许我们通过不同的 URL 访问不同的内容.
通过 vue.JS 可以实现多视图的单页 web 应用(single page Web application,SPA).
Vue.JS 路由需要载入 vue-router 库 https://github.com/vuejs/vue-router
中文文档地址: vue-router 文档 http://router.vuejs.org/zh-cn/ .
但是使用路由时, url 也是随着改变的, 用户浏览到一个网页时可以直接复制或收藏当前页的 url 给别人, 这种方式对于搜索引擎和用户来说都是友好的.
简单实例
Vue.JS + vue-router 可以很简单的实现单页应用.
<router-link> 是一个组件, 该组件用于设置一个导航链接, 切换不同 html 内容. to 属性为目标地址, 即要显示的内容.
以下实例中我们将 vue-router 加进来, 然后配置组件和路由映射, 再告诉 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>
- <!-- 使用 router-link 组件来导航. -->
- <!-- 通过传入 `to` 属性指定链接. -->
- <!-- <router-link> 默认会被渲染成一个 `<a>` 标签 -->
- <router-link to="/foo">Go to Foo</router-link>
- <router-link to="/bar">Go to Bar</router-link>
- </p>
- <!-- 路由出口 -->
- <!-- 路由匹配到的组件将渲染在这里 -->
- <router-view></router-view></div>
JavaScript 代码
- // 0. 如果使用模块化机制编程, 导入 Vue 和 VueRouter, 要调用 Vue.use(VueRouter)
- // 1. 定义 (路由) 组件.
- // 可以从其他文件 import 进来
- const Foo = { template: '<div>foo</div>' }
- const Bar = { template: '<div>bar</div>' }
- // 2. 定义路由
- // 每个路由应该映射一个组件. 其中 "component" 可以是
- // 通过 Vue.extend() 创建的组件构造器,
- // 或者, 只是一个组件配置对象.
- // 我们晚点再讨论嵌套路由.
- const routes = [
- { path: '/foo', component: Foo },
- { path: '/bar', component: Bar }
- ]
- // 3. 创建 router 实例, 然后传 `routes` 配置
- // 你还可以传别的配置参数, 不过先这么简单着吧.
- const router = new VueRouter({
- routes // (缩写)相当于 routes: routes
- })
- // 4. 创建和挂载根实例.
- // 记得要通过 router 配置参数注入路由,
- // 从而让整个应用都有路由功能
- const App = new Vue({
- router
- }).$mount('#app')
- // 现在, 应用已经启动了!
点击过的导航链接都会加上样式 class ="router-link-exact-active router-link-active".
更多 Web 前端开发 https://www.html.cn/ 知识, 请查阅 HTML 中文网 !!
来源: http://www.css88.com/qa/vue-js/17124.html