携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第1天,点击查看活动详情
大家好,我是大帅子,今天给大家讲一下vue中的路由,下面我们直接开始吧
1.原理
主要就是监听网页的hash值 ,这里我写一个简单地原理
<body>
<a href="#/a">A页面</a>
<a href="#/b">B页面</a>
<a href="#/c">C页面</a>
<div class="box">我是页面A</div>
<script>
window.onhashchange = () => {
// console.log(location.hash);
if (location.hash == '#/a') {
document.querySelector('.box').innerHTML = '我是页面A'
} else if (location.hash == '#/b') {
document.querySelector('.box').innerHTML = '我是页面B'
} else {
document.querySelector('.box').innerHTML = '我是页面c'
}
}
</script>
</body>
2.作用
SPA单页面应用
多页面应用: 一个页面对应一个html文件
单页面应用: 一个html对应多个页面
单页面跟多页面的区别
我们可以举一个梨子 : 大多数的商城网页都不会用单页面 ,例如京东,是不是,因为他们要手机用户的页面跳转,然后给我们推荐,这个就是单页面应用的最主要的一个缺点 ,不利于seo优化(搜索引擎的优化)
vue路由从零到一
这个问题vue的官网有详细的解释,我们可以按照步骤一步步来操作一下
首先我们可以安装一个不带路由的脚手架,vue的官网其实写漏了一个很关键的一步,就是导包,我这边补充一下
1. 先下包
yarn 跟 npm都可以 我这边都写上
npm install vue-router@4
| | | |
yarn add vue-router
2. 导入挂载
import VueRouter from 'vue-router'
Vue.use(VueRouter)
3.定义组件
我这边就把两种方式都写上了,做一个最细致的男人
// 1. 定义路由组件.
(1)
const Home = { template: '<div>Home</div>' }
const About = { template: '<div>About</div>' }
// 2. 也可以从其他文件导入
(2)
import Home from './home.vue'
import About from './about.vue'
4.定义路由
const routes = [
{
path:'/home',
name:home, //name可以省略
component:Home
},
{
path:'/about',
name:about, //name可以省略
component:()=>{import About from './about.vue'} //懒加载
}
]
5. 创建并挂载实例
const router = new VueRouter({
routes //这里是 routes:routes 的缩写
})
6.挂载
new Vue({
router,
render: h => h(App)
}).$mount('#app')
7.在页面上直接写跳转标签
<router-link to="/home">主页</router-link>
8. 在页面上面写路由出口
<router-view></router-view>
这就是vue路由的几步完整配置
最后我们可以直接吧全部的提取到router/index.js ,然后模块化导出,main.js里面导入,然后挂载到实例上面,就大功告成了
附图一张
好了,这边已经给大家介绍到这里,以上是我自己的理解,希望可以帮到大家, 欢迎留言我这边一定会第一时间给大家解答,喜欢的可以点赞收藏
🐣---->🦅 还需努力!大家一起进步!!!