<template> <div> <!-- 组件分为普通组件和路由组件 --> <div class="s1"> <h2>市区</h2> <ul> <!-- <li><router-link to="/hebei/city?a1=新华区&a2=裕华区&a3=长安区" active-class="selected">石家庄</router-link></li> <li><router-link to="/hebei/city?a1=邯山区&a2=丛台区&a3=复兴区" active-class="selected">邯郸</router-link></li> --> <li><router-link :to="`/hebei/city?a1=${sjz[0]}&a2=${sjz[1]}&a3=${sjz[2]}`" active-class="selected">石家庄</router-link></li> <li><router-link :to="`/hebei/city?a1=${hd[0]}&a2=${hd[1]}&a3=${hd[2]}`" active-class="selected">邯郸</router-link></li> <li>保定</li> <li>唐山</li> </ul> </div> <!-- 区组件 --> <router-view></router-view> </div> </template> <script> export default { name : "Hebei", data(){ return { sjz : ["新华区","裕华区","长安区"], hd : ["邯山区","丛台区","复兴区"] } } } </script> <style> </style>
<template>
<div>
<!-- 组件分为普通组件和路由组件 -->
<div class="s1">
<h2>市区</h2>
<ul>
<!-- <li><router-link to="/hebei/city?a1=新华区&a2=裕华区&a3=长安区" active-class="selected">石家庄</router-link></li>
<li><router-link to="/hebei/city?a1=邯山区&a2=丛台区&a3=复兴区" active-class="selected">邯郸</router-link></li> -->
<li><router-link :to="`/hebei/city?a1=${sjz[0]}&a2=${sjz[1]}&a3=${sjz[2]}`" active-class="selected">石家庄</router-link></li>
<li><router-link :to="`/hebei/city?a1=${hd[0]}&a2=${hd[1]}&a3=${hd[2]}`" active-class="selected">邯郸</router-link></li>
<li>保定</li>
<li>唐山</li>
</ul>
</div>
<!-- 区组件 -->
<router-view></router-view>
</div>
</template>
<script>
export default {
name : "Hebei",
data(){
return {
sjz : ["新华区","裕华区","长安区"],
hd : ["邯山区","丛台区","复兴区"]
}
}
}
</script>
<style>
</style>
<template> <div> <!-- 组件分为普通组件和路由组件 --> <div class="s2"> <h2>县区</h2> <ul> <!-- <li>{{ $route.query.a1 }}</li> <li>{{ $route.query.a2 }}</li> <li>{{ $route.query.a3 }}</li> --> <li v-for="propertyValue,propertyName in $route.query" :key="propertyName">{{ propertyValue }}</li> </ul> </div> </div> </template> <script> export default { name : "City", mounted(){ // 所有的路由组件都有一个$route,通过这个属性可以获取到路由组件关联的路由对象 console.log(this.$route); // 路由对象中有一个query属性,通过这个query属性可以接收到query方式传过来的数据 console.log(this.$route.query); } } </script> <style> </style>
<template>
<div>
<!-- 组件分为普通组件和路由组件 -->
<div class="s2">
<h2>县区</h2>
<ul>
<!-- <li>{{ $route.query.a1 }}</li>
<li>{{ $route.query.a2 }}</li>
<li>{{ $route.query.a3 }}</li> -->
<li v-for="propertyValue,propertyName in $route.query" :key="propertyName">{{ propertyValue }}</li>
</ul>
</div>
</div>
</template>
<script>
export default {
name : "City",
mounted(){
// 所有的路由组件都有一个$route,通过这个属性可以获取到路由组件关联的路由对象
console.log(this.$route);
// 路由对象中有一个query属性,通过这个query属性可以接收到query方式传过来的数据
console.log(this.$route.query);
}
}
</script>
<style>
</style>
// 导入vue-router对象 import VueRouter from "vue-router"; import Hebei from "../pages/hebei.vue"; import Henan from "../pages/henan.vue"; import City from "../pages/city.vue"; // 创建路由器对象(在这个路由器对象中配置路由) const router = new VueRouter({ // 在这里配置所有的路由规则 routes : [ // 这就是一个路由 { // 路由由path和component组成 // 这个看作key // 只要路径检测到的是/hebei就切换到这个组件 path : "/hebei", // 这个就是路由的value,路由的value是一个组件 component : Hebei, // children子路由 children : [ // 配置子路由 { // 对于子路由来说,path不用添加/,以/开始 // 系统会自动添加 // path : "/hebei/shijiazhuang", path : "city", component : City } ] }, { path : "/henan", component : Henan } ] }); // 导出路由器对象 export default router;
// 导入vue-router对象
import VueRouter from "vue-router";
import Hebei from "../pages/hebei.vue";
import Henan from "../pages/henan.vue";
import City from "../pages/city.vue";
// 创建路由器对象(在这个路由器对象中配置路由)
const router = new VueRouter({
// 在这里配置所有的路由规则
routes : [
// 这就是一个路由
{
// 路由由path和component组成
// 这个看作key
// 只要路径检测到的是/hebei就切换到这个组件
path : "/hebei",
// 这个就是路由的value,路由的value是一个组件
component : Hebei,
// children子路由
children : [
// 配置子路由
{
// 对于子路由来说,path不用添加/,以/开始
// 系统会自动添加
// path : "/hebei/shijiazhuang",
path : "city",
component : City
}
]
},
{
path : "/henan",
component : Henan
}
]
});
// 导出路由器对象
export default router;
<template> <div> <MyHeader></MyHeader> <div> <h1>省份</h1> <ul> <!-- 如果使用的是路由方式,就不能使用a标签超链接了 --> <!-- 需要使用vue-router提供的标签router-link --> <!-- <li><a href="/hebei">河北省</a></li> --> <!-- <li><a href="/henan" class="selected">河南省</a></li> --> <!-- router-link将来会被自动编译为a标签 --> <!-- active-class点中激活,点中的时候激活这个样式 --> <li><router-link to="/hebei" active-class="selected">河北省</router-link></li> <li><router-link to="/henan" active-class="selected">河南省</router-link></li> </ul> </div> <!-- 路由视图,起到一个占位的作用 --> <router-view></router-view> </div> </template> <script> import MyHeader from "./components/MyHeader"; export default { name : "App", components : {MyHeader} } </script> <style> .s1{ margin-left: 100px; } .s2{ margin-left: 200px; } .selected{ background-color: aqua; } </style>
<template>
<div>
<MyHeader></MyHeader>
<div>
<h1>省份</h1>
<ul>
<!-- 如果使用的是路由方式,就不能使用a标签超链接了 -->
<!-- 需要使用vue-router提供的标签router-link -->
<!-- <li><a href="/hebei">河北省</a></li> -->
<!-- <li><a href="/henan" class="selected">河南省</a></li> -->
<!-- router-link将来会被自动编译为a标签 -->
<!-- active-class点中激活,点中的时候激活这个样式 -->
<li><router-link to="/hebei" active-class="selected">河北省</router-link></li>
<li><router-link to="/henan" active-class="selected">河南省</router-link></li>
</ul>
</div>
<!-- 路由视图,起到一个占位的作用 -->
<router-view></router-view>
</div>
</template>
<script>
import MyHeader from "./components/MyHeader";
export default {
name : "App",
components : {MyHeader}
}
</script>
<style>
.s1{
margin-left: 100px;
}
.s2{
margin-left: 200px;
}
.selected{
background-color: aqua;
}
</style>
<template> <div> <!-- 组件分为普通组件和路由组件 --> <div class="s1"> <h2>市区</h2> <ul> <li>洛阳</li> <li>开封</li> <li>安阳</li> <li>郑州</li> </ul> </div> <router-view></router-view> </div> </template> <script> export default { name : "Henan" } </script> <style> </style>
<template>
<div>
<!-- 组件分为普通组件和路由组件 -->
<div class="s1">
<h2>市区</h2>
<ul>
<li>洛阳</li>
<li>开封</li>
<li>安阳</li>
<li>郑州</li>
</ul>
</div>
<router-view></router-view>
</div>
</template>
<script>
export default {
name : "Henan"
}
</script>
<style>
</style>