[ Vue-cli 安装 ]
- 项目开发: npm install -g @vue/cli
- 快速原型开发(对单个 *.vue 文件开发): npm install -g @vue/cli-service-global
[ 创建项目 ]
- vue create Router-demo
[ 运行 ]
- npm run serve
[ 目录 ]
- public => 静态资源文件 html icon- src => 入口文件 组件 路由 自己配置的静态资源文件+ assets => 自己配置的静态资源文件+ components => 公共组件+ router => 设置路由+ views => 视图组件+ App.vue => 所有组件的入口文件+ main.js => 默认入口文件- .browserslistrc => 目标浏览器配置- .babel.config.js => babel 配置文件- .package.json => 构建脚本和依赖关系
Vue-router 配置
引入组件并全局使用路由
/*** router/index.js*/import Vue from 'vue';import Router from 'vue-router';// 1. 引入组件import Home from '@/views/Home.vue';import Profile from '@/views/Profile.vue';import User from '@/views/User.vue';Vue.use(Router) // 全局使用 Router路由可以在所有的组件中使用
定义路由
/*** router/index.js*/// 2. 设置路由映射表 将路由和组件关系映射起来const routes = [{path: '/', //name: 'home', // 命名路由component: Home},{path: '/profile',name: 'profile',component: Profile},{path: '/user',name: 'user',component: User},// 如果 path 都不匹配 ,指定跳转路径{path: '*',// redirect: '/', 或者redirect: {path:'/'}},]
定义子路由
{path: '/user',name: 'user',component: User,// 子级路由children: [{path: 'useradd',// 动态路由component: () => import('@/views/UserAdd.vue'),},{path: 'userlist',component: () => import('@/views/UserList.vue'),},{path: 'detail/:id',component: () => import('@/views/Detail.vue'),},],},// 子路由 router 入口 to="/user/userlist"<router-link to="/user/userlist">用户列表</router-link>
创建 router 实例
/*** router/index.js*/// 3. 将 routes 放入 router 中进行渲染const router = new Router({mode: 'history', // 模式 其他值: "hash" | "history" | "abstract"base: process.env.BASE_URL,routes,})export default router
router 实例 注入到根实例进行渲染
/*** src/main.js*/import Vue from 'vue'import App from './App.vue'import router from './router'Vue.config.productionTip = falsenew Vue({router, // $royter(所有的方法) $route(所有的属性)render: h => h(App)}).$mount('#app')
router-link
<!-- App.vue --><template><div id="app"><div id="nav"><!-- Router 入口 --><!-- <router-link to="/">Home</router-link> | --><!-- <router-link to="/profile">Profile</router-link> --><!-- <router-link to="/user">User</router-link> --><!-- Router 入口 动态写法 --><router-link :to="{path: '/'}">Home</router-link> |<router-link :to="{name: 'profile'}">Profile</router-link><router-link to="/user">User</router-link></div><!-- Router 出口 --><router-view/></div></template>
