自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(154)
  • 收藏
  • 关注

原创 使用vite从头搭建一个vue3项目(五)非父子组件(兄弟组件)之间传值mitt

在src/utils目录下创建 emitter.js 文件,emitter 的使用方式与 vue2 中 EventBus 的使用方式相同。

2024-04-18 13:46:16 888

原创 使用vite从头搭建一个vue3项目(四)使用axios封装request.js文件,并使用proxy解决跨域问题

import.meta 是一个 ES 模块(ESM)特性,它提供了有关当前模块的元数据。在 Vue 3 中,import.meta 可以用于访问当前 Vue 应用程序实例的上下文信息,如应用程序的基本 URL、环境变量等。而要使用 proxy 代理,则 request.js 文件中的 baseURL 配置项就不再需要了。目录下创建 index.js 文件,引入request.js,创建一个请求函数。目录下创建 request.js 文件,并引入 axios。当然,此处的配置还有其他方式,不做赘述。

2024-04-17 17:24:24 1023 1

原创 使用vite从头搭建一个vue3项目(三)vite.config.js配置

v5.2.8。

2024-04-17 17:22:31 1817

原创 使用vite从头搭建一个vue3项目(二)创建目录文件夹以及添加vue-router

下面是我在创建vue3项目时,没有切换 node 版本导致的node版本兼容性警告。vite3 需要 node 必须是。,可以很方便的切换 node 版本,大家可以安装一个试试。修改 main.js 文件,挂载 router 路由。中添加 nav、router-link 的样式。将 style.css 中的样式注释。分享一个 node 版本管理器。创建Home、About组件。安装 vue-router。下载 nvm 时,选择。根据目录文件,在新建的。修改App.vue文件。

2024-04-12 17:08:10 729

原创 使用 create-vue 脚手架工具创建一个基于 Vite 的 vue3 项目,并包含加入 Vue Router 等可选项

使用 create-vue 脚手架工具可以快速创建 vue3 项目,包含如下选项(空格切换[是,否],enter选中):

2024-04-12 15:52:38 340

原创 使用vite创建一个react18项目

打包你的代码,并且它是预配置的,可输出用于生产环境的高度优化过的静态资源。模块提供了丰富的内建功能,如速度快到惊人的模块热更新(HMR)。安装 node_modules,完成后,输入指令。vite 是一种新型前端构建工具,能够显著提升前端。选择React项目模板,空格按钮确认。选择变种语言 TypeScript。一个开发服务器,它基于原生。一套构建指令,它使用。

2024-04-02 17:02:19 733

原创 使用vite从头搭建一个vue3项目(一)创建vue3项目

打包你的代码,并且它是预配置的,可输出用于生产环境的高度优化过的静态资源。模块提供了丰富的内建功能,如速度快到惊人的模块热更新(HMR)。vite 是一种新型前端构建工具,能够显著提升前端。一个开发服务器,它基于原生。一套构建指令,它使用。

2024-04-02 10:09:19 692

原创 循环异步调取接口使用数组promiseList保存,Promise.all(promiseList)获取不到数组内容,then()返回空数组

技术栈的项目中,因为上传文件的接口是单文件上传,当使用批量上传时,只能循环调取接口;但是发现打印出的 result 总是空数组。debugger 代码的执行顺序,应该是异步的原因导致的。为自定义字段,上传服务器成功后返回的,其他字段为。我使用 for 循环调取接口,然后定义了。下面上传了一张图片文件格式;上面代码的执行顺序是,先执行。对象添加一次,然后使用。其实是一个空数组,所以。最终返回的是一个空数组。组件所支持的自有字段。循环,然后直接执行了。都是同步代码,所以在。

2024-01-17 18:18:39 972

原创 PC端同花顺筹码峰(平均成本)的历史换手衰减系数如何设置

流通股是指上市公司股份中,可以在交易市场上正常流通交易的股票,与之对应的是非流通股,不能在交易市场上自由买卖。然而在流通股中,有一部分股票却有着非流通的特征。,应当在首次卖出的15个交易日前向证券交易所报告并预先披露减持计划,由证券交易所予以备案。左上角可以搜索"CM",选择【成本分布(系统)】,然后左下角会出现【用法说明】,如下图;这时候打开弹框如下,其中【筹码分布】公式就是你需要修改的内容(我的筹码分布是。首先,打开同花顺客户端,找到筹码峰,点击设置按钮。,所以只需要修改第10个参数就可以。

2023-11-15 09:42:08 8731 1

原创 python的包管理器pip安装经常失败的解决办法:修改pip镜像源

使用 pip 安装 requests 库,很快就能安装成功;未修改镜像源之前,出现好多好多红字(辣眼睛)。因为我本地还安装有其他版本的python,

2023-07-29 20:16:14 758

原创 前端路由hash模式以及history模式详解

在前后端分离的项目中,前端一般使用 SPA 单页面应用模式来开发项目。那么,什么是 SPA 呢?单页Web应用(single page web application,SPA),就是只有一张Web页面的应用,是加载单个HTML 页面并在用户与应用程序交互时动态更新该页面的Web应用程序。单页面应用就是改变页面的url地址,不会向后台发送请求,而是通过前端路由,动态渲染页面组件,url地址的改变与后台无关。hash 模式history 模式对比hash 模式history 模式url 显示。

2023-04-27 13:22:10 7882 3

原创 手写axios源码系列五:CancelToken取消请求类封装

在第一篇章节两种方式都可以取消请求,接下来我们探究一下两种取消请求的方式有何不同。

2023-04-24 08:52:38 1033 1

原创 手写axios源码系列四:interceptor拦截器

拦截器这里的逻辑其实就是将拦截器添加到数组的方式不同,所以产生的结果也不同,明白 unshift 与 push 将数据添加到数组的方式,也就明白拦截器的执行方式了。后面执行链执行时,使用 shift 从 chain 中取数据,会改变 chain 的长度,明白这些点也就难不住你了。so easy。还有一点,就是声明执行链 chain 时,有一个undefined占位符。原因就是代码执行时,每次从 chain 中取出成对的回调函数,一个成功,一个失败,放到相应的位置执行。如果没有undefined。

2023-04-24 08:21:53 676

原创 手写axios源码系列三:dispatchRequest发送请求

dispatchRequest 这里的代码逻辑还是比较简单,比较清晰的。

2023-04-23 14:16:50 610

原创 手写axios源码系列二:创建axios函数对象

建议大家先下载 axios 的源码,然后过一遍源码的目录文件,主要文件全部在lib目录下,这里我就不一一介绍了。_Axios.js:axios的构造函数,因为有一个 axios.js,文件名不区分大小写会重复,所以添加了下横杠_Axios防止文件名重复;其中request方法为重点,拦截器功能在这里书写;:适配器,其中有一个方法getAdapter来获取发送请求的方式 xhr 或者 http;axios.js:整个目录的入口文件,创建了axios 函数对象以及对外暴露了一些属性以及方法;

2023-04-23 10:59:41 539

原创 手写axios源码系列一:axios核心知识点

最近从头搭建了一个vue小项目,想使用 axios 作为请求接口的第三方库。结果使用了 axios 这么长时间,想封装一下 axios ,也就是大部分项目中的文件,我居然无法默写出来,create 和 interceptors 这样的 api 都不知道怎么使用;所以决定深入一下 axios 源码,一探究竟 axios 到底是个什么东东。当前 axios 源码版本为。

2023-04-21 22:35:51 723

原创 使用express封装一个简单的http代理服务器以及手动设置Access-Control-Allow-Origin解决跨域问题

【代码】express中设置Access-Control-Allow-Origin跨域。

2023-04-19 09:06:58 1321

原创 使用nodemon时报错:“无法加载文件...,因为在此系统上禁止运行脚本“;windows执行策略修改

Windows 给 PowerShell 设定了一个叫 “执行策略” 的东西。为了避免一些恶意脚本直接运行,一般电脑的 windows 系统默认将执行策略设置成了Restricted,即受限制的。所有的执行策略如下所示AllSigned:要求所有脚本和配置文件均需受信任的发布者签名,包括在本地计算机上编写的脚本。(安全但是本地编写的脚本也要签名,麻烦)Bypass:不会阻止你运行任何脚本,也没有提示和警告。(不安全)Default:默认的执行策略;

2023-03-30 11:13:36 861 2

原创 nodejs中exports与module.exports的关系以及手写require导入模块的原理

将一个复杂的程序文件依据一定规则(规范),拆分成多个文件的过程称之为模块化。其中拆分出的每一个文件就是一个模块,模块内部数据是私有的,不过模块可以暴露内部数据以供其他模块使用。当模块被加载的时候,会被包裹在一个函数内,这个包裹函数就是模块封装器。CommonJS 模块 | 模块封装器在代码中查看当前模块封装器// 输出封装器函数的函数体。

2023-03-29 19:45:02 702 5

原创 js贪心算法入门级教程,钱币找零(零钱兑换)问题解析

,可知,这是一个每次选择都需要最优子结构问题,因为如果不是最优子结构,那找零所需的钱币数量便不是最少的。例如我需要找零101元,正常最优选择为100元1张,1元1张,这样找零所需钱币才是最少的2张,是最优子结构;当一个问题的最优解包含其子问题的最优解时,称此问题具有最优子结构性质。一个问题的整体最优解可通过一系列局部的最优解的选择达到,并且每次的选择可以依赖以前作出的选择,但不依赖于后面要作出的选择。贪心算法所作的贪心选择可以依赖于以往所作过的选择,但决不依赖于将来所作的选择,也不依赖于子问题的解。

2023-03-25 15:22:13 2152 2

原创 js分治法入门级教程,二分搜索的解法

二分搜索法,它充分利用了元素间的次序关系,采用分治策略,可在最坏的情况下用 O(log n) 完成搜索任务。数组必须是一个有序数组,如 [1, 2, 3, 4, 5, 6, 7, 8, 9]搜索时从数组中间元素开始,如果中间元素正好是要查找的元素,则搜索过程结束;如果中间元素大于要查找的元素,则在数组中小于中间元素的一半区间中继续查找;如果中间元素小于要查找的元素,则在数组中大于中间元素的一半区间中继续查找;

2023-03-21 21:07:15 282

原创 js动态规划算法入门级教程,斐波那契数列的解法

斐波那契数列(Fibonacci sequence),又称黄金分割数列。斐波纳契数列以如下被以递归的方法定义:F(0)=0,F(1)=1,F(n)=F(n-1)+F(n-2)(n≥2,n∈N*);这个数列从第三项开始,每一项都等于前两项之和。

2023-03-19 13:31:09 710

原创 vue2启动项目npm run dev报错 Error: Cannot find module ‘babel-preset-es2015‘ 修改以及问题原因

它能让你使用最新的 JavaScript 语法而无需操心对目标环境所支持的语法设置相应的语法转换插件(以及可选的 polyfills)。@babel/preset-env 可以根据指定的执行环境提供语法转换,就是可以将更新的 js 语法转换为浏览器当前支持的语法。按需引入需要借助插件 babel-plugin-component,我们可以只引入需要的组件,以达到减小项目体积的目的。在报错之前,我正在修改代码,使用 ElementUI 的按需引入方式,修改了 babel.config.js。

2023-03-16 13:17:03 1328

原创 蓝桥杯基础-【切面条】不用画图的解题思路

既然是算法题目,肯定在数学范畴内,而数学范畴内的事物都是有规律可循的。】,开始进行数学分析:求的是对折次数与面条根数之间的关系,因为切刀数为常数,总是为1。当你看到这种题目时,一定要仔细审题,不要被表象所迷惑,求的是对折10次之后的结果;,与题目【对折0次,中间切一刀,可以得到2根面条】的结果不相等。这时,你恍然大悟,一拍脑门,大喊一声:mlgbzd,原来规律是。你高兴的拿着解出的题目去讨老师欢心,然后老师一个 DBD 就对你幼小的心灵造成了深深的伤害,但。,所以对折10次,得到的结果为。

2023-03-15 22:36:16 318

原创 async和await的用法以及原理分析

大家好,这篇文章让我们来了解一下 async/await 语法糖的用法以及实现原理。async/await 语法糖其实就是为了简化 promise.then 繁琐的链式调用而产生的,为了让代码更简洁,书写更方便。

2023-03-15 19:22:13 990

原创 手写promise原理系列九:封装Promise.race方法,Promise.race的用法

的意思,其实就是看哪个 promise 对象优先执行,返回优先执行的 promise 对象的结果,不管结果是成功还是失败。小伙伴们,你们好,本篇为"手写promise原理系列" 最后一篇文章了,虽然 promise 我们已经学习了很多,但是在。的道路上,任重而道远,后面我会单独出一篇文章来探讨一下一种更好的异步实践方式 async/await 的使用方法。执行时,当前 promise 对象的状态变为了失败,所以就直接返回了。变为了异步执行,所以此时最先执行的为。最先执行,所以返回结果为。

2023-03-14 10:47:04 424

原创 手写promise原理系列八:封装Promise.all方法,Promise.all的用法

Promise.all 方法的参数是一个 promise 对象组成的数组,当 Promise.all 方法的参数中有一个失败的状态时,直接返回当前失败的 promise 对象的状态以及结果。由上面的同步、异步调用方式可知,不管 promise 对象是同步改变状态还是异步改变状态,Promise.all 的执行结果都是。其实,关键点在于异步改变状态时,如何让 Promise.all 的执行结果变为有序的?的意思,其实就是全部 promise 对象执行成功才返回结果,只要有一个失败,就返回失败的结果。

2023-03-14 10:28:21 519

原创 手写promise原理系列七:封装Promise.reject方法,Promise.reject的用法

在上篇文章中我们知道了 Promise.resolve 的用法以及手动封装了 Promise.resolve 方法,这篇文章继续研究 Promise.reject 方法的用法以及手动封装一个 Promise.reject 方法。Promise.reject 方法接受一个参数,可以是 promise 对象,也可以是非 promise 对象的任意值。让我们开始吧,先看Promise.reject 的用法。

2023-03-14 07:55:45 752

原创 手写promise原理系列六:封装Promise.resolve方法,Promise.resolve的用法

在前面几篇文章中,我们封装了 Promise 构造函数、原型对象方法 then 以及 catch ,相信大家是有所收获的,接下来的篇章我们去探寻一下 Promise 构造函数的静态方法:resolve、reject、all以及race方法。Promise.resolve 方法接受一个参数,可以是 promise 对象,也可以是非 promise 对象的任意值。下一章节探讨一下和 Promise.resolve 相对应的 api:Promise.reject 方法的使用以及封装。

2023-03-13 20:43:30 1086

原创 手写promise原理系列五:Promise.prototype.catch方法的封装与异常穿透,promise.catch的用法

在上面代码中的第一个 then 方法中没有传递回调函数,这时候咱们封装的 then 方法肯定报错,程序无法执行,因为不传参数,相当于传递两个 undefined 值,undefined 值无法进行函数调用,因为 then 方法内部默认是传递函数作为参数的。catch 方法接受一个参数,就是失败时的回调,而 then 方法接受两个参数,第二个参数为失败时的回调,那可不可以只使用 then 方法的第二个参数呢?下图为上面代码的图示理解,我尽力了。

2023-03-13 16:53:46 383

原创 手写promise原理系列四:封装Promise.prototype.then方法,promise.then的用法

then 方法接受两个参数,第一个参数为状态变为成功时的回调函数onResolved,第二个参数为状态变为失败时的回调函数onRejected。

2023-03-13 12:45:26 477 1

原创 手写promise原理系列三:封装Promise构造函数,Promise构造函数的用法

然后resolve()时,将状态变更为成功,reject()时,将状态变更为失败,throw抛出错误时,状态也变更为失败。目前咱们封装完成了 Promise 构造函数,这只是一个19行代码的简单版本,只处理了三个问题点,但对于小白理解 promise 源码以及 promise 的工作方式有深刻意义,至少我在初窥门径时眼前是豁然开朗。因为初始状态为 pending ,当状态不为 pending 时,那说明状态被变更过了,所以就不再进行任何操作;好了,话不多说,撸起袖子接着干。

2023-03-12 22:12:52 601

原创 手写promise原理系列二:手写promise的关键逻辑梳理,promise用法原理

书接上回,上一篇中讲解了一些promise的基础知识以及常用API的使用,这篇文章的重点在于深入了解promise的运行方式,梳理其中的关键性逻辑,为接下来正式手写promise做一些准备工作。大家千万不要着急,当真正进入手写promise环节后,可能还需要不断返回当前篇章,仔细斟酌这其中字句,才能真正了解promise中的无穷奥妙,全是以及。

2023-03-12 17:01:56 354

原创 手写promise原理系列一:promise基础知识解析,then、catch、resolve、reject、all、race等promise api的用法

开篇点题,最近复习了前端技术点中有关 promise 的相关知识,但是还从未深入过源码,从未手写过 promise,项目中已经全面使用 promise 作为异步编程的解决方式,避免了回调地狱。为了深入理解 promise 的工作原理,决定写一个关于"手写promise"的系列教程,希望自己能坚持写完,不要半途而废。。好了,话不多说,先来熟悉一下 promise 的基础知识。

2023-03-12 11:42:22 514

原创 throw语句以及throw “error“ 和 throw new Error(“error“)的区别

throw 语句用来抛出一个用户自定义的异常。当前函数的执行将被停止(throw 之后的语句将不会执行),并且控制将被传递到调用堆栈中的第一个 catch 块。如果调用者函数中没有 catch 块,程序将会终止。语法:throw 一个表达式 || 对象// 抛出了一个值为字符串的异常 throw 42;// 抛出了一个值为整数 42 的异常 throw true;// 抛出了一个值为 true 的异常 console . log("aaa");throw语句抛出的异常可以被语句捕获。

2023-03-07 10:32:09 1787

原创 js中强制类型转换Number、parseInt、parseFloat、Boolean、String、toString的使用

最近在巩固 js 的基础知识,今天复习到了 js 中的数据类型转换知识点,然后整理一下。

2023-02-23 14:56:03 1766

原创 JS中如何将一个普通对象转换为可迭代对象,并且可使用for...of迭代对象,内含手写一个简单的迭代器

如何对 colorObj 对象进行for...of迭代获取其中的值呢?如果直接使用for...of。

2023-02-22 16:43:49 1371

原创 前端面试题:手写call、apply、bind函数

bind() 方法创建一个新的函数,在 bind() 被调用时,这个新函数的 this 被指定为 bind() 的第一个参数,而其余参数将作为新函数的参数,供调用时使用。apply() 方法调用一个具有给定 this 值的函数,以及以一个数组(或一个类数组对象)的形式提供的参数。call() 方法使用一个指定的 this 值和单独给出的一个或多个参数来调用一个函数。说白了就是改变当前调用函数的this指向,并向调用函数中传参。

2023-02-21 19:31:15 642

原创 ES6中Promise、async、await面试题

学习过程中遇到的一些基础的Promise、async、await面试题整理。

2023-02-20 18:38:32 909

原创 js中的隐式类型转换有哪些

在前端js这门语言中,不仅存在着显示类型转换,还存在许多隐式类型转换,让人头大。为了减少小伙伴们的踩坑,今天总结了一些常见的隐式类型转换规则,让我们来看看有哪些。

2023-02-20 15:32:16 1283

使用vite从头搭建一个vue3项目

使用vite3搭建的一套简单的vue3项目模板,以供自由学习使用。

2024-04-18

nodejs+express技术栈开发一个简单记账本案例

基于nodejs技术栈,使用 express-generator 脚手架生成一个express基础项目模板,使用 lowdb 本地 json 文件数据存储方式开发的一个 "记账本" 案例。 本地服务启动基于nodemon,需安装nodemon:`npm i -g nodemon`,这里使用全局安装方式,全局范围使用。 项目下载后需安装第三方包:`npm i `。 本案例代码适合对nodejs以及express框架有一定了解的基础小白学习使用。学习完本demo,可以帮助学习者更加深入了解前后端路由通信以及数据库存储等方面知识。 预祝学习者有更多收获。

2023-04-03

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除