ajax 封装 ajax 封装一个完整的 AJAX(Asynchronous JavaScript and XML) 请求通常涉及以下几个步骤: 创建 XMLHttpRequest 对象 配置请求方法和 URL 设置请求头(可选) 监听 readystatechange 事件或 onload 事件 发送请求 处理服务器响应 完整示例function ajaxRequest(method, url, data 2025-03-27 基础 #ajax
预检请求 预检请求CORS 预检请求用于检查服务器是否支持 CORS 协议,并且是否允许使用特定的方法和标头。 浏览器会自动发送 OPTIONS 预检请求,主要在以下情况下: 使用了非简单请求(即非 GET、POST(仅限 application/x-www-form-urlencoded、multipart/form-data、text/plain)、HEAD)。 设置了自定义请求头(如 Author 2025-03-27 深入 #header #header options
react19 的改进和新功能 React 19 中的新功能Actions在 React 应用中,一个常见的用例是执行数据变更,然后响应更新状态。例如,当用户提交一个表单来更改他们的名字,你会发起一个 API 请求,然后处理响应。在过去,你需要手动处理待定状态、错误、乐观更新和顺序请求。 例如,你可以在 useState 中处理待定和错误状态: // 没有 Actions 之前 function UpdateName({ 2025-03-20 基础 #react
vue 中 watch 和 computed 的区别 vue 中 watch 和 computed 的区别在 Vue.js 中,watch 和 computed 都用于响应式数据的处理,但它们有不同的用途和使用场景。 computed 属性computed 属性用于声明计算属性。计算属性基于其他响应式数据进行计算,并且只有在其依赖的数据发生变化时才会重新计算。计算属性的结果会被缓存,直到其依赖的数据发生变化。 使用场景: 当你需要基于其他数据计算出 2025-03-20 基础 #vue