Vue----路由(上)

一、什么是路由?

对于单页面应用程序来说,组件与组件之间的跳转规则就是路由;     

Vue 路由允许我们通过不同的 URL 访问不同的内容(组件)。     

通过 Vue 可以实现多视图的单页 Web 应用(single page web application,SPA)。


提示:以下是本篇文章正文内容,下面案例可供参考

二、基本案例

HTML:<router-link>是一个组件,该组件用于设置一个导航链接,切换不同的HTML。to属性为目标地址,即要显示的内容。
<!--router-link 将呈现为一个带有正确href属性的a标签 -->
<router-link to="/">首页</router-link>
<router-link to="/about">关于我们</router-link>
<hr>
<!--router-view路由出口--><!--路由匹配到的组件将渲染在这里-->
<router-view></router-view>

router-link :可以使得Ve Router在不重新加载页面的情况下更改URL,处理URL的生成及编码。

router-view: router-view将显示与url对应的组件。可以放在任何地方,以适应你的布局。

JavaScript:
//1.定义两个组件,也可以是通过import导入的组件
const Home ={template:<div class='home'></div>`}
const About ={template:<div class='about'></div>'}

//2.定义路由映射(此选项将作为路由实例的配置)
//每个路由都需要映射到一个组件
const routes =[{path:'/',component:Home},
    {path:'/about',component:'my-about'},
];
//3.创建路由实例,并传递routs配置
const router =VueRouter.createRouter({
//内部提供了 history 模式的实现。为了简单起见,我们在这里使用hash 式。history:VueRouter.createWebHashHistory(),
routes,//routes:routes、的缩写
})
//创建实例
const vm=Vue.createApp({})
//设置整个实例支持路由
vm.use(router);
//挂载实例
vm.mount('#app1');

三、router-link属性补充

1,to 属性:

通过to属性可以规定路由跳转地址:

<router-link to='/'>首页</router-link>

to属性也可以写成绑定属性,那么他所绑定的值就会变成一个对象:

<router-link :to"{path:'/'}">首页</router-link>

2, replace属性:

设置replace属性的话,当点击是,会调用router.replace()而不是router.push(),导航后不会留下history记录。

四,嵌套路由

1.使用命名路由的方式

第一步:制作父页面导航;

第二步:定义父组件

第三步:定义路由规则

2,不使用命名路由的方式

第一步:制作父页面导航;

第二步:定义父组件

第三步:定义路由规则

五,编程式导航

$router.push()方法的参数:

<router-link>提供了replace属性,编程式导航也提供了此功能

路由中的前进后退功能(history.go(n)):



六,命视图

在<router-view>上使用name属性规定视图名称,如果 router-view 没有设置名字,那么默认为 default,一个视图使用一个组件渲染,因此对于同个路由,多个视图就需要多个组件。确保正确使用 components 配置 (带上 s)    

七,重定向

之前的方式:

可以替换成:

通过组件的props属性,可以接收路由传递过来的参数     当 props 设置为 true 时,route.params 将被设置为组件的 props。

八,不同的历史模式        

1.Hash 模式     

它在内部传递的实际 URL 之前使用了一个哈希字符(#)。由于这部分 URL 从未被发送到服务器,所以它不需要在服务器层面上进行任何特殊处理。不过,它在 SEO 中确实有不好的影响。如果你担心这个问题,可以使用 HTML5 模式。     

2.HTML5 历史模式(推荐)   

 用 createWebHistory() 创建 HTML5 历史模式;     当使用这种历史模式时,URL 会看起来很 "正常",例如 https://example.com/user/id         

不过,问题来了。由于我们的应用是一个单页的客户端应用,如果没有适当的服务器配置,用户在浏览器中直接访问 https://example.com/user/id,就会得到一个 404 错误。     

要解决这个问题,你需要做的就是在你的服务器上添加一个简单的回退路由。如果 URL 不匹配任何静态资源,它应提供与你的应用程序中的 index.html 相同的页面。

OK,本文到此结束,希望本文对你有所帮助 😃

如果还有什么疑问或者建议,可以多多交流,原创文章,文笔有限,才疏学浅,文中若有不正之处,万望告知。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值