自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(378)
  • 资源 (1)
  • 收藏
  • 关注

原创 .npmrc配置文件

npmrc配置文件.npmrc是一个用于配置 npm 行为的文件。这个文件可以位于多个地方,但最常见的是位于项目目录或者你的用户主目录。npmrc文件由一系列键值对组成,用于配置npm在执行命令时的行为和参数。一个.npmrc。

2024-06-25 13:55:08 376

原创 npm作用域包和版本

在npm中,作用域(scope)是一种将一组包组织在一起的方式,可以通过作用域共享包或限制包的可见性。如果一个包的名称以@开头,那么它就是一个有作用域的包。范围是@和斜杠之间的所有内容。如果一直使用相同的作用域,您可能希望在.npmrc文件中设置此选项。如果使用npm init,可以将范围作为选项添加到该命令。要创建有作用域的包,只需使用以作用域开头的包名。

2024-06-25 12:19:59 336

原创 向npm发包

access 默认值:'restricted' 用于范围包,'public' 用于非范围包,类型:空值、"restricted" 或 "public"4.编写和测试代码:npm link 主要作用是在本地项目和本地npm包之间建立连接,方便进行模块测试和开发调试。文件来指定在发布包时应该忽略的文件和目录。这可以帮助你减小包的大小,避免不必要的文件被上传。如果你希望你的范围包可公开查看(和可安装),请设置。安装node和npm,注册npm账号。发布范围包时,访问级别默认为。

2024-06-25 12:02:30 245

原创 package.json简介

通过npm init初始化一个项目,会生成3个目录/文件, node_modules, package.json和 package.lock.json。其中package-lock.json文件是为了锁版本。

2024-06-20 16:16:29 703

原创 修改源码,打patch包,线上环境不生效

在node_modules中,找对应的包,然后查看包中package.json 的main和module。如果用require引入,则修改lib下面的组件,如果是import引入则修改es下面的文件。在使用npm进行安装依赖或者项目构建时,我们可能会遇到一些需要特殊处理的情况。比如说,某些环境下(特别是以root用户身份运行时)执行npm命令可能遇到权限问题。参数后, npm将不再尝试修改正在运行脚本进程权限, 这样可以确保脚本可以按照预期访问文件和执行任务。这个参数主要用于解决此问题的。

2024-06-20 10:46:26 242

原创 修改源码,打patch包

然后执行npm install,这事会自动执行npm run postinstall这个命令,也就是执行patch-package,这时候就会去读取上面说的 patches目录,并将那些补丁打到对应的包里,达到同步修改代码的效果。注:要把 patches 这个目录提交到git,别人才可以同步你的修改。2.修改node_modules里面的文件后,然后执行。1、安装patch-package。

2024-04-16 09:28:48 367

原创 antd datepicker点击选不中报错 Unable to preventDefault inside passive event listener invocation.

事件起因:在微应用点击其他微应用的页面后,回到自己项目导致antd datepicker选择时间无法选中。控制台报错:Unable to preventDefault inside passive event listener invocation,这个警告通常出现在使用passive事件监听器时,当在事件处理函数中调用preventDefault()方法时会引发该警告。在main.js中(或新建js文件,引入到main.js中),重写addEventListener,把passive置为false;

2024-03-29 13:44:25 275

原创 Object.hasOwn 低版本浏览器兼容性问题解决

使用Object.hasOwnProperty()代替。hasOwn是es2022新语法,旧浏览器不支持。

2023-07-25 14:43:00 1413

原创 vue3浏览器报错解决Uncaught runtime errors

【代码】vue3浏览器报错解决Uncaught runtime errors。

2023-07-11 11:19:40 4085 3

原创 vue+vue-matomo实现埋点

vue+vue-matomo实现埋点

2023-06-13 11:23:41 989

原创 Vue3兄弟组件传值mitt.js

在Vue3中没有了EventBus兄弟组件通信,但是现在有了一个替代的方案mitt.js,原理还是 EventBus。

2023-06-05 11:29:10 421

原创 手写一个eventBus自定义事件

在我们的JavaScript中,可以给元素添加一个点击监听事件,当用户点击的时候,点击事件怎会被执行,这也是一种事件总线的思想在里面,就好比元素订阅了点击事件,用户发布或出触发点击事件。所谓事件总线模式,其实就和发布订阅模式非常类似,比如我们订阅了一个公众号,公众号发布文章之后我们就能收到信息,这就是一种订阅发布的关系。再比如在Vue2项目中,我们可以使用$on、$emit来实现事件的监听和触发,这其实就是一种事件总线的思想在里面,只不过Vue帮我们实现好了。使用$emit发布事件。实现$off取消订阅。

2023-03-21 15:00:27 297 1

原创 项目中常见的代码优化方案

一个为 null 和 undefined 的判断,减少 || 类型的处理,用?使用数组或者字符串的 includes 方法,代替 indexOf 方法。校验多个表单项不能为空,使用策略模式代替 if-else。使用switch,object或者Map代替。利用filter,some,every优化代码。减少没必要的if...else判断。

2023-03-10 17:35:19 242

原创 Lodash基本使用

Lodash 是一个一致性、模块化、高性能的 JavaScript 实用工具库。里面有很多针对数组、对象、函数等一些方法。数组去重 union和uniqBy。深拷贝 cloneDeep。防抖 debounce。节流 throttle。

2023-03-10 15:06:55 1161

原创 vue3中toRaw使用

ref和reactive 数据每次修改都会被追踪,都会更新UI界面,也是非常消耗性能的,所以如果我们有一些操作不需要追踪,不需要更新UI界面,那么这个时候我们就可以通过toRaw方法拿到它的原始数据,,这样会优化一些性能。

2023-03-02 21:41:53 518

原创 Pinia的基本使用(vue3)

Pinia.js 是新一代的状态管理器

2023-03-02 15:28:13 535

原创 vue3 shallowRef和shallowReactive

shallowReative与shallowRef在某些特殊的应用场景下,是可以提升性能的,前者针对对象,用于浅层作用的响应式数据处理,而后者只处理基本数据类型的响应式,不进行对象的响应式处理。

2023-03-01 16:59:20 584

原创 Vue3中ref、reactive、toRef、toRefs基本用法和区别

setup 函数中默认定义的变量并不是响应式的(即数据变了以后页面不会跟着变),如果想让变量变为响应式的变量,需要使用 ref 和 reactive 函数修饰变量。区别:reactive只能传入对象类型的参数,所以基本数据类型添加响应式状态只能用ref(当然ref也可以定义复杂的数据)ref 获取数据值需要加.value注:ref底层使用的是proxy代理函数实现双向绑定,proxy 函数必须要接收一个对象,如果想修改 name 的值,需要使用 name.value区别:toRef:只希望转换一个react

2023-03-01 15:47:34 912

原创 vue-cli中的环境变量注意点

只有以 VUE_APP_ 开头的变量会被 webpack.DefinePlugin 静态嵌入到客户端侧的包中

2023-03-01 15:20:59 446

原创 export {default as xxx} from xxxxx写法

export {default as xxx} from xxxxx写法

2023-02-16 10:48:25 471

原创 <script setup>中父子组件传值及方法调用

中父子组件传值及方法调用 defineProps,defineEmits,defineExpose

2023-01-29 10:53:00 1975

原创 antd vue Cascader多选设置suffixIcon无效

antd vue Cascader多选设置suffixIcon无效

2023-01-09 17:01:23 828

原创 antd Table组件selectedRows翻页未保留上一页已选中数据(方法二)

antd Table组件selectedRows翻页未保留上一页已选中数据

2022-12-14 09:13:52 1161

原创 antd Table组件selectedRows翻页或重新搜索后未保留上一页已选中数据

antd Table组件selectedRows翻页或重新搜索后未保留上一页已选中数据

2022-12-02 16:34:33 1059

原创 get方式文件流下载

vue get方式文件流下载

2022-11-29 14:11:18 527

原创 vue实现可拖拽div

vue实现可拖拽div。

2022-09-09 16:30:17 669

原创 js常用正则表达式

js正则

2022-08-29 15:41:46 911

原创 Typescript 泛型

泛型可以理解为在我们定义函数、接口或者类的时候,不预先指定其相关的类型,而是在使用的时候手动指定类型。但是这样,这个函数我只能传字符串类型的参数给这个函数,如果想传数字类型,布尔类型呢。如果想做到传入什么类型就返回什么类型,例如传入number就返回number,这时候就可以使用泛型。any 的缺点:一个变量设置为any后,相当于关闭了ts的类型检测,一般情况下不建议使用any。any:一个变量设置为any后,相当于关闭了ts的类型检测,一般情况下不建议使用any。需求:有个函数会返回任何传入它的值。...

2022-08-29 10:43:28 355

原创 TypeScript type 和 interface区别

类型别名 type 和 接口 interface 区别与联系

2022-08-28 17:30:18 581

原创 Typescript类型

数字类型是我们开发中经常使用的类型,TypeScript和JavaScript一样,不区分整数类型(int)和浮点型(double),统一为number类型。一个字符系列,使用单引号(')或双引号(")来表示字符串类型。never 是其它类型(包括 null 和 undefined)的子类型,代表从不会出现的值。元组类型用来表示已知元素数量和类型的数组,各元素的类型不必相同,对应位置的类型需要相同。// 在元素类型后面加上[]...

2022-08-28 16:06:49 100

原创 uniapp常见兼容性问题

uniapp常见兼容性问题

2022-08-28 15:34:31 7450

原创 腾讯地图初始化以及解析和逆解析

腾讯地图初始化以及解析和逆解析

2022-08-28 15:17:48 3091

原创 百度地图初始化以及解析和逆解析

百度地图初始化以及地址解析和逆解析

2022-08-19 16:23:20 1048

原创 创建vue3的项目

利用vite 和 vue-cli 创建vue3的项目

2022-08-19 14:56:56 226

原创 vue中企业微信 第三方应用扫码登录(pc端)

企业微信 第三方应用扫码登录参考文档:接入指引 - 接口文档 - 企业微信开发者中心首先在login页面,写一个按钮,触发点击事件,引导用户进入登录授权页:<button @click="toWxLogin">企业微信扫码登录</button>toWxLogin(){ //授权登录之后目的跳转网址,需要做urlencode处理。所在域名需要与授权完成回调域名一致 let url = 'http://....' //服务商的Cor

2022-05-20 18:39:47 2444

原创 uniapp中uView的安装配置

安装npm install uview-ui配置1. 引入uView主JS库在项目根目录中的main.js中,引入并使用uView的JS库,注意这两行要放在import Vue之后。// main.jsimport uView from "uview-ui";Vue.use(uView);2. 在引入uView的全局SCSS主题文件在项目根目录的uni.scss中引入此文件。/* uni.scss */@import 'uview-ui/theme.scss';

2022-05-17 18:36:27 976

原创 redux、react-redux、redux-thunk、redux-saga对比

reduxredux工作流程示意图actions函数形式,返回 action 对象,通常具有type属性。负责指令的生成,页面通过 store.dispatch(action) 向 store 发送数据修改的请求。reducers一个纯函数,接收两个参数 (previousState, action) 第一个表示修改之前的 state 的值,action 是上一步页面通过 store.dispatch(action) 向 store 传递的 action。reducers 通过 ac

2022-05-07 13:45:50 882 1

原创 浏览器缓存:强缓存和协商缓存

介绍:浏览器缓存是为了节约资源,并且可以加速浏览网站的速度,当用户第一次进行访问网页的时候,浏览器在用户磁盘上对请求的文档进行保存,当用户第二次访问的时候,就会从本地直接显示,从而提高了访问页面的速度。浏览器缓存分为:强缓存和协商缓存两种。缓存的优点:减少了不必要的数据传输,节省带宽 减少服务器的负担,提升网站性能 加快了客户端加载网页的速度 用户体验友好缺点:资源如果有更改但是客户端不及时更新会造成用户获取信息滞后,如果老版本有bug的话,情况会更加糟糕。强缓存:如果资源没过

2022-04-12 15:44:37 1614 1

原创 扫描普通二维码,进入微信小程序

登陆微信公众平台1.点击【开发】-【开发管理】-【开发设置】开启扫普通二维码链接打开小程序,点击添加配置:打开添加配置:二维码规则根据二维码跳转规则,开发者需要填写需要跳转小程序的二维码规则。要求如下: 二维码规则的域名须通过ICP备案的验证。 支持http、https开头的链接(如:http://wx.qq.com、https://wx.qq.com/mp/、https://wx.qq.com/mp?id=123)。 前缀占用规则开发者可选择是否占用符合二维.

2022-04-12 13:01:43 4220

原创 微信扫码ios:scanQRCode:the permission value is offline verifying

报错信息:安卓手机:permission deniedios手机:scanQRCode:the permission value is offline verifying解决方案:1、确认config的jsApiList参数包含了这个JSAPI前端代码:wx.config中jsApiList里加上'scanQRCode'2、确认IP白名单、js安全域名、网页授权域名IP白名单:【开发/基本配置】-【IP白名单】 js安全域名、网页授权域名:【设置/公众号设置】-【功能设置】-.

2022-04-12 12:36:23 4833

微信公众号拍照功能

此代码是前端在vue中利用sdk调用微信公众号api的拍照功能代码

2018-12-04

空空如也

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

TA关注的人

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