闲暇随笔1

本文探讨了GET和POST方法在数据量、安全性、缓存等方面的差异,并介绍了Vue3路由参数的query和params使用,以及网页优化技巧,如懒加载、预加载和代码分割等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.0 浏览器复制内容到剪切板
在这里插入图片描述
2.0 GET 和 POST 方法的区别:

1、发送的数据数量
在 GET 中,只能发送有限数量的数据,因为数据是在 URL 中发送的。
在 POST 中,可以发送大量的数据,因为数据是在正文主体中发送的。
2、安全性
GET 方法发送的数据不受保护,因为数据在 URL 栏中公开,这增加了漏洞和黑客攻击的风险。
POST 方法发送的数据是安全的,因为数据未在 URL 栏中公开,还可以在其中使用多种编码技术,这使其具有弹性。
3、加入书签中
GET 查询的结果可以加入书签中,因为它以 URL 的形式存在;而 POST 查询的结果无法加入书签中。
4、编码
在表单中使用 GET 方法时,数据类型中只接受 ASCII 字符。
在表单提交时,POST 方法不绑定表单数据类型,并允许二进制和 ASCII 字符。
5、可变大小
GET 方法中的可变大小约为 2000 个字符。
POST 方法最多允许 8 Mb 的可变大小。
6、缓存
GET 方法的数据是可缓存的,而 POST 方法的数据是无法缓存的。
7、主要作用
GET 方法主要用于获取信息。而 POST 方法主要用于更新数据。
  1. 0 vue3 路由传参
路由的传参方式一共有两种,一种是query,另一种是params。
query参数会在URL显式存在,params一般不会出现在URL上(动态路由除外);
query传参可以和path属性一起使用,params不能和path属性一起使用,只能和name属性一起使用;
params传参在刷新页面时会参数丢失(动态路由不会),而query传参不会有这种情况。
 router.push({path:'/home',query:{a:1,b:2}})      // 路由跳转地址 http://localhost:8080/home?a=1&b=2
 route.query    // 取值 {a:1,b:2}

 router.push({name:'home',path:'/home',params:{a:1,b:2}}) // 路由跳转地址  http://localhost:8080/home
 route.params   // 取值 {a:1,b:2}  页面刷新后, 参数丢失

 const routes = [{path:'/',component: index},{path:'/home/:a/:b',component:home}] // 动态路由配置
 router.push({name:'home',path:'/home',params:{a:1,b:2}})  // 动态路由跳转地址 http://localhost:8080/home/1/2
 route.params  // 动态路由传参取值 
 
 // 注意 vue-router 4.14版本删除了未使用的params 意味着使用params传参,高于4.14版本的vue-router接收不到传参(动态路由除外)

4.0 路由导航解析过程

导航被触发;
在失活的组件里调用beforeRouteLeave守卫;
调用全局的beforeEach守卫;
在重用的组件里调用beforeRouteUpdate守卫;
在路由配置里调用beforeEnter守卫;
解析异步路由组件;
在被激活的组件里调用beforeRouteEnter守卫;
调用全局的beforeResolve守卫;
导航被确认;
调用全局afterEach钩子;
触发dom更新;
调用beforeRouteEnter守卫中next的回调函数,创建好的组件实例会作为回调函数的参数传入。

5.0 网页优化

<img src="https://www.ld-seo.com/uploadfile/images/637f0862951e21669269602.jpg" alt="" loading="lazy">   // loading="lazy" 延迟加载图像 
<link rel="preload" href="critical.js" as="script"> // 预加载资源 preload
<script src="file.js" defer></script> // async和defer不同之处是async加载完成后会自动执行脚本,defer加载完成后需要等待页面也加载完成才会执行代码
// 压缩图片大小, 如使用webp格式图片
cdn加速/开启gzip压缩/前端缓存

代码分割
import { defineAsyncComponent } from 'vue'
// 会为 Foo.vue 及其依赖创建单独的一个块
// 它只会按需加载
//(即该异步组件在页面中被渲染时)
const Foo = defineAsyncComponent(() => import('./Foo.vue'))

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值