vue-router(2.0)

用Vue.js+vue-router创建单页应用是比较简单的。使用Vue.js时,我们就已经把组件组合成一个应用了,当你要把vue-router加进来,只要配置组件和路由映射,然后告诉vue-router在哪里渲染它们。举例:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
  </head>
  <body>
  <div id="app">
    <h1>Hello Vue-router!</h1>
    <p>
      <router-link to="/foo">Go to Foo</router-link>
      <router-link to="/bar">Go to Bar</router-link>
    </p>
    <router-view></router-view>
  </div>
  </body>
  <script src="http://cdn.bootcss.com/vue/2.0.0-rc.8/vue.js"></script>
  <script src="http://cdn.bootcss.com/vue-router/2.0.0-rc.7/vue-router.js"></script>
  <script>
    const Foo = { template: ‘<div>foo</div>‘ }
    const Bar = { template: ‘<div>bar</div>‘ }

    const routes = [
      { path: ‘/foo‘, component: Foo },
      { path: ‘/bar‘, component: Bar }
    ]

    const router = new VueRouter({
      routes // short for routes: routes
    })

    const app = new Vue({
      router
    }).$mount(‘#app‘);
  </script>
</html>

结果:

动态路由匹配

可以在 vue-router 的路由路径中使用“动态路径参数”

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
  </head>
  <body>
  <div id="app">
    <h1>Hello Vue-router!</h1>
    <p>
      <router-link to="/foo/first">Go to First</router-link>
      <router-link to="/foo/second">Go to Second</router-link>
    </p>
    <router-view></router-view>
  </div>
  </body>
  <script src="http://cdn.bootcss.com/vue/2.0.0-rc.8/vue.js"></script>
  <script src="http://cdn.bootcss.com/vue-router/2.0.0-rc.7/vue-router.js"></script>
  <script>
    const Foo = { template: ‘<div>foo {{ $route.params.id }}</div>‘ }
    const routes = [
      { path: ‘/foo/:id‘, component: Foo },
    ]

    const router = new VueRouter({
      routes // short for routes: routes
    })

    const app = new Vue({
      router
    }).$mount(‘#app‘);
  </script>
</html>

结果:

嵌套路由

URL中各段动态路径可以按某种结构对应嵌套各层组件。

例子:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
  </head>
  <body>
    <div id="app">
    <p>
      <router-link to="/user/foo">/user</router-link>
      <router-link to="/user/foo/profile">/user/profile</router-link>
      <router-link to="/user/foo/posts">/user/posts</router-link>
    </p>
    <router-view></router-view>
    </div>
  </body>
  <script src="http://cdn.bootcss.com/vue/2.0.0-rc.8/vue.js"></script>
  <script src="http://cdn.bootcss.com/vue-router/2.0.0-rc.7/vue-router.js"></script>
  <script>
    const User = {
      template:
      `
        <div class="user">
          <h2>User {{ $route.params.id }}</h2>
          <router-view></router-view>
        </div>
      `
    }

    const UserHome = { template: ‘<div>Home</div>‘ }
    const UserProfile = { template: ‘<div>Profile</div>‘ }
    const UserPosts = { template: ‘<div>Posts</div>‘ }

    const router = new VueRouter({
      routes: [
        { path: ‘/user/:id‘, component: User,
          children: [
            { path: ‘‘, component: UserHome },

            { path: ‘profile‘, component: UserProfile },

            { path: ‘posts‘, component: UserPosts }
          ]
        }
      ]
    });
    const app = new Vue({ router }).$mount(‘#app‘);
  </script>
</html>

结果:

时间: 2024-10-07 10:17:20

vue-router(2.0)的相关文章

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>

react router 4.0以上的路由应用

thead>tr>th{padding:8px;line-height:1.4285714;border-top:1px solid #ddd}.table>thead>tr>td,.table>tbody>tr>th,.table>tbody>tr>td,.table>tfoot>tr>th,.table>tfoot>tr>td{padding:8px;line-height:1.4285714;ver

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包会变得非常大

更轻更快的Vue.js 2.0与其他框架对比(转)

更轻更快的Vue.js 2.0 崭露头角的JavaScript框架Vue.js 2.0版本已经发布,在狂热的JavaScript世界里带来了让人耳目一新的变化. Vue创建者尤雨溪称,Vue 2.0 在性能上有显著的提升,同时保持轻量的文件下载: 渲染层基于一个轻量级的Virtual DOM实现进行了重写,该Virtual DOM实现fork自snabbdom.新的渲染层相比v1带来了巨大的性能提升,也让Vue 2.0成为了最快速的框架之一. 根据1.0到2.0迁移指南,“大约90%的API是相

Vue.js 2.0 参考手册.CHM下载

下载地址 Vue.js 2.0 参考手册.CHM下载链接: http://pan.baidu.com/s/1kVbhd4b 密码: wxfh

Vue.js 2.0版

Vue.js 2.0版升级,更改了好多方法或指令 new Vue({ el:'#demo', data:{ msg:"vue2.0" } }) v-model lazy number debounce (2.0版废弃)  新加 lazy .lazy - 取代 input 监听 change 事件 .number - 输入字符串转为数字 .trim - 输入首尾空格过滤 <input v-model.lazy="msg" /> v-for v-for迭代语

requirejs vue vue router简单框架

index.html 入口页面 <!DOCTYPE html> <html> <head lang="en">     <meta charset="UTF-8">     <title>vue</title>     <link href="../css/index.css" rel="stylesheet">     <script 

如何使用@vue/cli 3.0在npm上创建,发布和使用你自己的Vue.js组件库

译者按: 你可能npm人家的包过成千上万次,但你是否有创建,发布和使用过自己的npm包? 原文: How to create, publish and use your own VueJS Component library on NPM using @vue/cli 3.0 译者: Fundebug 为了保证可读性,本文采用意译而非直译.另外,本文版权归原作者所有,翻译仅用于学习. 尽管我已经在工作上用了Vue.js一段时间,但我从不需要在npm上发布组件.但最近发现在不同的项目重写组件是件非

Vue 随笔1-加入vue router 后发现app被渲染了2次

原因:main中已经render了app,在route中不需要再加入app组件了,直接重定向到home即可 main.js import Vue from 'vue' import App from './App.vue' import VueRouter from 'vue-router' import routes from './router/router' Vue.config.productionTip = false Vue.use(VueRouter) const router =

Vue系列:Vue Router 路由梳理

Vue Router 是 Vue.js 官方的路由管理器.它和 Vue.js 的核心深度集成,让构建单页面应用变得易如反掌.包含的功能有: 嵌套的路由/视图表 模块化的.基于组件的路由配置 路由参数.查询.通配符 基于 Vue.js 过渡系统的视图过渡效果 细粒度的导航控制 带有自动激活的 CSS class 的链接 HTML5 历史模式或 hash 模式,在 IE9 中自动降级 自定义的滚动条行为 1.动态路由 动态路由,可以将某种模式匹配到的所有路由,并全都映射到同个组件. (通俗点,比如根