从历往经验来看,开发一个新项目,往往在刚开始部署项目,到项目的正式交付,以及交付后的后续维护,功能增强等过程,都需要对项目的一些已有结构和逻辑进行调整。
因此,如果有些内容刚建项目时不考虑好未来的可扩展性,后续调整会很麻烦。
这里先来说,在vue项目中,如何写路由配置,更利于未来可扩展。
为了方便新学者的阅读与理解。先来看一下最基本的路由是如何配置的
//0。导入Vue和VueRouter脚本,如果使用模块化机制编程,要调用Vue.use (VueRouter)//1。定义(路由)组件。//可以从其他文件进口进来
const Foo={模板:' & lt; div> foo
'}
const酒吧={模板:' & lt; div> bar
'}//2。定义路由//每个路由应该映射一个组件。
const路线=[
{路径:/foo,组件:foo},
{路径:/酒吧,组件:酒吧}
]//3。创建路由器实例,然后传“路线”配置//你还可以传别的配置参数,不过先这么简单着吧。
const路由器=new VueRouter ({
路线//(缩写)相当于路线:路线
})//4。创建和挂载根实例。//记得要通过路由器配置参数注入路由,//从而让整个应用都有路由功能
const应用=new Vue ({
路由器
})。美元山(“#应用”)
>之前
如果具体还要什么不懂的,还是多看官方文档把
到这里我当你已经比较熟悉路由配置的相关知识哦,很细的知识点我就不细说了。
<>强场景1 强>
假设你现在接到一个新项目,产品经理要求你开发一个系统,给你的交互图等资料都是关于系统内部的各个页面。这时你以为开发的这个系统就仅仅是直接展示系统内部的情况了,甚至你啥都没想,就直接开始配置路由写页面去了。
一开始你差不多写出了以下的路由配置:
//例1
const路由器=new VueRouter ({
路线:[
{路径:/所述,组件:page 1},
{路径:“所以page2/?所以page2组件:}
]
});
>之前
像这种配置的,大概就猜出你把系统的菜单等公共部分都放在App.vue里写好了,然后通过一个& lt; router-view/祝辞进行系统内容的变更。
<>强场景2 强>
后面产品经理跟你说,要系统加一个官网,首页之类的存在。! !如果你配了按照上述的路由情况,此时,你是不是有点懵呢?因为你把系统的公共内容如菜单都写在应用。vue上了,但是首页不需要系统的这些部分。
尽管你再配出了一个首页的路由,但是你也要想办法去掉那些已有的系统公共部分。
<>强解决方案强>
所以我们不能采用上述配置方式。此时我们应该把系统本身作为一个路,由系统公共部分写在这个路由映射组件上,而系统内部各页作为子路由,嵌套在其下。
//例2
const路由器=new VueRouter ({
路线:[
{
路径:'/'
主要组件:,
孩子:(
{
路径:/所述,
Page1组件:
},
{
所以page2路径:“/?
所以Page2组件:
}
]
}
]
});
>之前
这里的主要组件就是系统的入口,菜单等公共部分就是写在这里
此时应用。vue文件的内容应该就直接是一个路由入口了
& lt; !——App.vue祝辞
& lt; template>
& lt; div>
& lt; router-view/比;
& lt;/div>
& lt;/template>
>之前
如果你一开始是这么写的话,那么要新增一些非系统内部的页面,简直就轻而易举了。如新增个首页,直接新增个一级路由就好了
//示例3
const路由器=new VueRouter ({
路线:[
{
路径:'/'
主要组件:,
孩子们:[…]
},
{
路径:“/home”
组件:回家
}
]
});
>之前
但是此时我们应该要知道,当仅输入你的网站域名(没有具体到哪页)时,会默认打开路径:/的页面,上述例子就是默认打开系统页面了。
<>强场景3 强>
你的产品经理又来找事啦。再要求你添加个非系统页,如登录注册页,打开网站地址域名时默认跳转到登录页。