Vue-Router 相关理解 基本路由 多级路由

  • vue-router初体验
    1.安装v-router,命令 npm i vue-router
    2.应用插件vue.use(vueRouter)
    3.编写router配置项
    创建路由模块,在 src 源代码目录下,新建 router/index.js 路由模块,初始化代码:
    查看代码
    import VueRouter from 'vue-router'			// 引入VueRouter
    import About from '../components/About'	// 路由组件
    import Home from '../components/Home'		// 路由组件
    
    // 创建router实例对象,去管理一组一组的路由规则
    const router = new VueRouter({
    	routes:[
    		{
    			path:'/about',
    			component:About
    		},
    		{
    			path:'/home',
    			component:Home
    		}
    	]
    })
    
    //暴露router
    export default router

        4.在 main.js 文件中导入并挂载路由模块: 

查看代码
import Vue from 'vue'
import App from './App.vue'
import router from './router/index.js'

new Vue({
  router,
  render: (h) => h(App),
}).$mount('#app')

   在组件中声明路由链接和占位符:

查看代码
<template>
  <div class="app-container">
    <!-- 路由链接 -->
    <router-link to="/home">首页</router-link>
    <router-link to="/about">关于</router-link>
    <router-link to="/movie">电影</router-link>

    <!-- 路由出口 -->
    <router-view></router-view>
  </div>
</template>

注意事项:

组件分为路由组件和一般组件,前者放在 pages(或views) 文件夹,后者放在 components 文件夹

$route 存储着组件的路由规则信息

$router 是路由器对象,只有一个

<router-link> 的 replace 属性 

  • 多级路由

1.配置路由规则,使用children配置项

查看代码
routes:[
	{
		path:'/about',
		component:About,
	},
	{
		path:'/home',
		component:Home,
		children:[ 					// 通过children配置子级路由
			{
				path:'news', 		// 此处一定不要带斜杠,写成 /news
				component:News
			},
			{
				path:'message',	// 此处一定不要写成 /message
				component:Message
			}
		]
	}
]

2.跳转(要写完整的路径)

<router-link to="/home/news">News</router-link>

src/pages/Home.vue

查看代码

<template>
	<div>
		<h2>Home组件内容</h2>
		<div>
			<ul class="nav nav-tabs">
				<li><router-link class="list-group-item" 
                       active-class="active" to="/home/news">News</router-link></li>
				<li><router-link class="list-group-item" 
                       active-class="active" to="/home/message">Message</router-link></li>
			</ul>
			<router-view></router-view>
		</div>
	</div>
</template>

<script>
	export default {
		name:'Home',
	}
</script>

src/pages/News.vue

查看代码
<template>
    <ul>
        <li>news001</li>
        <li>news002</li>
        <li>news003</li>
    </ul>
</template>

<script>
    export default {
        name:'News'
    }
</script>

 src/router/index.js

查看代码

//该文件专门用于创建整个应用的路由器
import VueRouter from "vue-router";
//引入组件
import Home from '../pages/Home'
import About from '../pages/About'
import News from '../pages/News'
import Message from '../pages/Message'

//创建并暴露一个路由器
export default new VueRouter({
    routes:[
        {
            path:'/about',
            component:About
        },
        {
            path:'/home',
            component:Home,
            children:[
                {
                    path:'news',
                    component:News
                },
                {
                    path:'message',
                    component:Message
                }
            ]
        }
    ]
})
上一篇:ABAC支持Spring Security或Apache Shiro


下一篇:如何在PHP中实现基于属性的访问控制(ABAC)