自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 云南旅游攻略

大水车(丽江标志性地标)→大研花🌸巷(各式各样的花🌸,这个季节是三角梅比较壮观)→四方街(城中心)→五1️⃣街(美食步行街)→现文街(美轮美奂的油纸伞🌂)→振兴线(挂满灯笼🎐)→木府(懂得都懂)→狮子山(可以登高远眺丽江全景)→酒吧1️⃣条街。牦牛坪中索道(40元)和云杉坪小索道(40元)也是可选的,但冰川公园大索道是三个索道中最值得体验的一个。2、乘坐泸沽湖旅游专线车,19座左右车型,往返票价140元,途经大落水村,最后停泊在里格村,每天早上07:40到古城大水车接人,或者08:30在古城停车场发车。

2024-04-24 23:02:39 636

原创 vite+vue3+ts+eslint+prettier+husky+lint-stated 项目搭建

vite+vue3+ts+eslint+prettier+husky+lint-stated 项目搭建

2023-06-06 20:51:42 845

原创 node 脚本调试

只需要找到webpack的执行入口,然后执行以下命令,只要是node脚本都可以进行调试。执行以上命令,然后打开浏览器的控制台会发现有个node的logo。点击这个图标就可以开始调试代码。

2023-05-11 21:57:48 332

原创 Axios 与Fetch 的区别

Axios与Fetch的区别

2023-03-07 22:51:21 1739

原创 前端知识体系

自我介绍

2023-03-05 22:19:15 77

原创 如何在for循环内执行异步操作

for循环内异步操作

2023-03-04 21:09:13 4041

原创 call、apply、bind的实现

call、apply、bind实现

2023-02-22 22:28:57 76

原创 webpack自定义loader

自定义loader

2023-02-07 16:50:45 84

原创 图片懒加载

图片懒加载

2023-02-05 21:17:35 42

原创 Promise是如何实现的?

Promise 的实现

2022-12-26 18:26:00 85

原创 如何实现跨窗口通讯

如何实现跨窗口通讯

2022-12-06 22:04:19 1047

原创 webSoket封装

【代码】webSoket封装。

2022-12-02 17:01:00 188

原创 canvas 签名组件封装

【代码】canvas 签名组件封装。

2022-12-02 11:06:13 220

原创 es5 vs es6 继承

ES5 Vs Es6 继承

2022-11-28 16:21:56 555

原创 nginx如何部署前端项目 mac

nginx如何部署前端项目

2022-11-25 14:22:18 516

原创 滚动加载封装

【代码】滚动加载封装。

2022-10-21 15:07:12 146

原创 混合开发jsBridge介绍

H5与原生交互

2022-08-03 17:08:13 283

原创 有趣的“灵魂”库集合

前端灵魂库集合

2022-07-16 11:23:51 71

原创 Mac 终端自定义命令行

查看shellecho $0如果你的 shell 是zsh,则配置文件为.zshrc,如果是-bash 则为.bashrc添加自定义的命令通过“访达”->"前往文件夹"输入“~/”, 进入当前用户的根目录,找到上面的配置文件例如:打开.bashrc,通过alias 别名关键字添加自定义的命令alias run="npm run"alias dev="npm run dev"alias rtest="npm run release:test"alias ruat="npm run r

2022-05-05 16:51:48 1617 1

原创 项目规范之stylelint

Stylelint一个强大的现代 linter,可帮助您避免错误并在您的样式中强制执行约定。Linting CSS files安装Stylelint的标准配置npm install --save-dev stylelint stylelint-config-standard在项目的根目录下创建一个配置文件 .stylelintrc.json ,并添加以下内容// .stylelintrc.json{ "extends": "stylelint-config-standard"

2022-05-02 11:41:32 935

原创 项目规范之husky && lint-stated

HuskyYou can use it to lint your commit messages, run tests, lint code, etc… when you commit or push. Husky supports all Git hooks当您提交或推送时,您可以使用它来检查您的提交消息、运行测试、检查代码等。Husky 支持所有 Git 钩子了解详情FeaturesZero dependencies and lightweight (6 kB)Powered by m

2022-04-29 22:47:50 890

原创 项目规范之eslint & prettier 【create-react-app-typescript】

创建typescript项目npx create-react-app my-app --template typescriptvscode 设置首选项–设置–settings.json,添加以下配置 "editor.defaultFormatter": "esbenp.prettier-vscode", // 默认的格式化插件prettier "editor.formatOnType": true, // 输完一行后自动格式化 "editor.formatOnSave": true, // 保

2022-04-29 11:39:46 303

原创 二进制文件兼容下载

业务需求文件下载需要权限验证,不能单纯的通过a标签进行下载​解决思路Blob表示一个不可变、原始数据的类文件对象。它的数据可以按文本或二进制的格式进行读取,也可以转换成 ReadableStream 来用于数据操作。 借助URL.createObjectURL(blob) 生成blob 的地址,它的格式如下:blob:http://xxx,创建a标签,给a便签href属性赋上该blob地址实现下载。Blob对象 - MDNURL.createObjectURL: 生成blob地址用于下载Fi

2022-04-29 11:21:45 248

转载 Web 安全之内容安全策略详解(Content-Security-Policy,CSP)

1.CSP 简介内容安全策略(Content Security Policy,简称CSP)是一种以可信白名单作机制,来限制网站是否可以包含某些来源内容,缓解广泛的内容注入漏洞,比如 XSS。 简单来说,就是我们能够规定,我们的网站只接受我们指定的请求资源。默认配置下不允许执行内联代码(2.CSP 使用方式CSP可以由两种方式指定: HTTP Header 和 HTML。通过定义在HTTP header 中使用:"Content-Security-Policy:" 策略集通过定义在 HTML me

2022-04-27 11:38:35 16527 3

原创 TypeScript 学习笔记

简介对象类型别名使用type 或者 interface// types/use.tstype Person = { name: string, age: number}interface Person1 { name: string, age: number}拓展type 拓展-&操作符拓展// types/use.ts 类型别名定义type Person = { name: string}type Person2 = Person & {

2022-04-05 11:47:21 920

原创 React 函数式组件useRef

useImperativeHandleuseImperativeHandle(ref, createHandle, [deps])useImperativeHandle 可以让你在使用 ref 时自定义暴露给父组件的实例值。在大多数情况下,应当避免使用 ref 这样的命令式代码。useImperativeHandle 应当与 forwardRef 一起使用。import React, { forwardRef, useRef, useImperativeHandle } from 'react';

2022-03-28 18:29:02 1660

转载 CSS 变量教程

CSS 变量(CSS variable)又叫做"CSS 自定义属性"(CSS custom properties),可以通过JS动态改变。一、变量的声明变量名前面要加两根连词线–,变量名大小写敏感。:root { --main-color: #4d4e53; --main-bg: rgb(255, 255, 255); --logo-border-color: rebeccapurple; --header-height: 68px; --content-padding: 10px

2022-03-28 10:42:05 14241

原创 Webpack Tree Shaking

Tree Shakingtree shaking 是一个术语,通常用于描述移除 JavaScript 上下文中的未引用代码(dead-code)。它依赖于 ES2015 模块语法的 静态结构 特性,例如 import 和 export。这个术语和概念实际上是由 ES2015 模块打包工具 rollup 普及起来的。webpack 2 正式版本内置支持 ES2015 模块(也叫做 harmony modules)和未使用模块检测能力。新的 webpack 4 正式版本扩展了此检测能力,通过 package

2022-03-20 15:31:08 1276

原创 Webpack优化

抽离公共代码如果多个页面引入了一些公共模块,那么可以把这些公共的模块抽离出来,单独打包。公共代码只需要下载一次就缓存起来了,避免了重复下载。//webpack.config.jsmodule.exports = { optimization: { splitChunks: {//分割代码块 cacheGroups: { vendor: { //第三方依赖

2022-03-07 16:24:36 511

原创 发布订阅模式

【代码】发布订阅模式

2022-03-04 17:00:30 53

原创 Video 全屏播放、禁止拖动进度条、禁止下载

​全屏播放ios:默认全屏播放模式,不做处理;安卓:默认小屏播放模式,特殊处理,以下是实现代码;/*** @description 安卓全屏播放模式* @video DOM节点 */function fullscreen(video){ if (video.requestFullscreen) { video.requestFullscreen() } else if (video.msRequestFullscreen) { video.msReques

2022-03-03 22:10:22 6979 1

原创 深入理解JS单线程

前言Event Loop即事件循环,是指浏览器或Node的一种解决javaScript单线程运行时不会阻塞的一种机制,也就是我们经常使用异步的原理。为啥要弄懂 Event Loop是要增加自己技术的深度,也就是懂得JavaScript的运行机制。现在在前端领域各种技术层出不穷,掌握底层原理,可以让自己以不变,应万变。应对各大互联网公司的面试,懂其原理,题目任其发挥。Event Loop 是什么event loop 是一个执行模型,在不同的地方有不同的实现。浏览器和 Node.js 基于不同的技

2021-11-24 21:35:30 289

原创 React生命周期

声明周期

2021-11-24 21:25:11 97

原创 数据结构集合

前端数据结构整理

2021-11-18 15:55:22 706

原创 前端工具类个人收集

前端工具类收集

2021-10-18 14:08:49 69

原创 CryptoJS与JSEncrypt 加密算法

【代码】加密工具封装

2021-10-18 10:55:08 4401

原创 npm 、yarn、pnpm、nvm 、nrm、 npx介绍

nvm——node versions managernode版本管理工具,为了解决node各种版本存在不兼容现象npm——node package managerNode.js 的包管理工具nrm ——node registry manager管理 npm中镜像地址npx主要是用来调用项目内部安装的模块...

2021-09-28 10:00:39 786

原创 AST抽象语法树

为什么要了解AST如果你想了解 js 编译执行的原理,那么你就得了解 AST,目前前端常用的一些插件或者工具,比如说javascript转译、代码压缩、css预处理器、elint、pretiier等功能的实现,都是建立在 AST 的基础之上。JavaScript 编译执行流程js执行的第一步是读取 js 文件中的字符流,然后通过词法分析生成token,之后再通过语法分析生成 AST(Abstract Syntax Tree),最后生成机器码执行。词法分析词法分析,也称之为扫描(scanner),简

2021-08-09 22:28:56 10402

转载 代码加密混淆插件webpack-obfuscator

背景公司代码提供给第三方使用,为了不完全泄露源码,需要对给出的代码进行加密混淆,前端代码虽然无法做到完全加密混淆,但是通过使用 webpack-obfuscator 通过增加随机废代码段、字符编码转义等方法可以使构建代码完全混淆,达到无法恢复源码甚至无法阅读的目的。安装npm install --save-dev webpack-obfuscator配置// webpack.config.jsconst JavaScriptObfuscator = require('webpack-obfus

2021-07-14 12:00:56 13247 5

原创 Vue自定义指令

需求:根据账号的权限控制页面的操作按钮的方案:选择vue 的自定义指令,将权限控制逻辑进行封装1.自定义指令的封装// 路径:src/directive/permission/permission.jsimport { getMenus } from '@/utils/permission'import { getAllMenusCodes } from '@/utils/permission'function checkPermission(el, binding) { const {

2021-05-11 14:31:35 209

vue源码下载学习一下

源码下载,学习一下

2023-11-13

空空如也

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

TA关注的人

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