更新时间:2021-12-30 来源:黑马程序员 浏览量:
什么是路由
SPA 与前端路由
SPA 指的是一个 web 网站只有唯一的一个 HTML 页面,所有组件的展示与切换都在这唯一的一个页面内完成。
此时,不同组件之间的切换需要通过前端路由来实现。
结论:在 SPA 项目中,不同功能之间的切换,要依赖于前端路由来完成!
前端路由的工作方式
①用户点击了页面上的路由链接
②导致了 URL 地址栏中的 Hash 值发生了变化
③前端路由监听了到 Hash 地址的变化
④前端路由把当前 Hash 地址对应的组件渲染都浏览器中
实现简易的前端路由
步骤1:导入并注册MyHome、MyMovie、MyAbout 三个组件。示例代码如下:
import MyHome from './components/MyHome.vue' import MyMovie from './components/MyMovie.vue' import MyAbout from './components/MyAbout.vue' export default { components: { MyHome, MyMovie, MyAbout, }, }
步骤2:通过标签的is 属性,动态切换要显示的组件。示例代码如下:
< template > < h1 > App 组件 < /h1> < component: is = "comName" > < /component> < /template> export default t data() { return { comName: 'my-home', //要展示的组件的名称 } }, }
步骤3:在组件的结构中声明如下3 个链接,通过点击不同的链接,切换浏览器地址栏中的Hash 值
<a href="#/home">Home</a> <a href="#/movie">Movie</a> <a href="#/about">About</a>
步骤4:在created生命周期函数中监听浏览器地址栏中Hash 地址的变化,动态切换要展示的组件的名称:
created() { windoiufonhashchange = () => { switch (location.hash) { case '#/home': //点击了“首页“的链接 this.comName = 'my-home' break case '#/movie': //点击了“电影”的链接 this.comName = 'my-movie' break case '#/about': //点击了“关于”的链接 this.comName = 'my-about' break } } }
【AI设计】北京143期毕业仅36天,全员拿下高薪offer!黑马AI设计连续6期100%高薪就业
2025-09-19【跨境电商运营】深圳跨境电商运营毕业22个工作日,就业率91%+,最高薪资达13500元
2025-09-19【AI运维】郑州运维1期就业班,毕业14个工作日,班级93%同学已拿到Offer, 一线均薪资 1W+
2025-09-19【AI鸿蒙开发】上海校区AI鸿蒙开发4期5期,距离毕业21天,就业率91%,平均薪资14046元
2025-09-19【AI大模型开发-Python】毕业33个工作日,就业率已达到94.55%,班均薪资20763元
2025-09-19【AI智能应用开发-Java】毕业5个工作日就业率98.18%,最高薪资 17.5k*13薪,全班平均薪资9244元
2025-09-19