VUE 路由router
用 Vue.js + vue-router 创建单页应用,是非常简单的。使用 Vue.js ,我们已经可以通过组合组件来组成应用程序,当你要把 vue-router 添加进来,我们需要做的是,将组件(components)映射到路由(routes),然后告诉 vue-router 在哪里渲染它们。
首先要下载vue-router
# 在项目目录下 npm install vue-router
在webpack模式下,建议在src文件下的router(路由)中的index.js文件中导入vue-router,并且让Vue使用它.
可以直接在mian.js中导入,直接生成一个对象挂载到Vue对象中,不必再导入
import Vue from 'vue' import Router from 'vue-router' # Router是为他起的名字,vue-router是第三方模块所以使用他的名字 import Vmain from '@/components/Vmain' import Vmarked from '@/components/Vmarked' # 导入组件,使路由对应组件 Vue.use(Router)
创建路由对象抛出
export default new Router({
mode: 'history', // 解决#
routes: [ //routes中就是一个个的对象,对象包括
{
path: '/', // 路径
name: 'Vmain', //名字
component: Vmain // 对应的组件
},
{
path: '/marked',
name: 'Vmarked',
component: Vmarked
}
]
}
在main.js中导入路由对象,将他挂载到Vue中
import Vue from 'vue'
import App from './App'
import router from './router' // 会直接去导入index
Vue.config.productionTip = false
/* eslint-disable no-new */
new Vue({
el: '#app',
router, // router:router 的缩写
components: { App }, // 子组件
template: '<App/>'
})
<router-link :to="item.url">{{item.name}}</router-link>
# to属性就是渲染出来a标签的href,而这个a标签不会重新加载页面
路由组件的出口
<router-view></router-view> # 会将路由对应的组件放在<router-view></router-view>中
子路由
在VueRouter对象中的routes属性的字典中添加children属性对应着列表,里面也是一个个的对象
let router = new VueRouter({
routes: [
{
name: 'home',
path: '/',
component: Home,
},
{
name: 'courses',
path: '/courses',
component: Courses,
children: [
{
path: 'lightcourses',
component: LightCourses
},
{
path: 'degreecourses',
component: DegreeCourses
},
]
},
]
});

浙公网安备 33010602011771号