- 博客(374)
- 资源 (1)
- 收藏
- 关注
原创 修改源码,打patch包
然后执行npm install,这事会自动执行npm run postinstall这个命令,也就是执行patch-package,这时候就会去读取上面说的 patches目录,并将那些补丁打到对应的包里,达到同步修改代码的效果。注:要把 patches 这个目录提交到git,别人才可以同步你的修改。2.修改node_modules里面的文件后,然后执行。1、安装patch-package。
2024-04-16 09:28:48 218
原创 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 213
原创 Object.hasOwn 低版本浏览器兼容性问题解决
使用Object.hasOwnProperty()代替。hasOwn是es2022新语法,旧浏览器不支持。
2023-07-25 14:43:00 1062
原创 vue3浏览器报错解决Uncaught runtime errors
【代码】vue3浏览器报错解决Uncaught runtime errors。
2023-07-11 11:19:40 3728 3
原创 Vue3兄弟组件传值mitt.js
在Vue3中没有了EventBus兄弟组件通信,但是现在有了一个替代的方案mitt.js,原理还是 EventBus。
2023-06-05 11:29:10 351
原创 手写一个eventBus自定义事件
在我们的JavaScript中,可以给元素添加一个点击监听事件,当用户点击的时候,点击事件怎会被执行,这也是一种事件总线的思想在里面,就好比元素订阅了点击事件,用户发布或出触发点击事件。所谓事件总线模式,其实就和发布订阅模式非常类似,比如我们订阅了一个公众号,公众号发布文章之后我们就能收到信息,这就是一种订阅发布的关系。再比如在Vue2项目中,我们可以使用$on、$emit来实现事件的监听和触发,这其实就是一种事件总线的思想在里面,只不过Vue帮我们实现好了。使用$emit发布事件。实现$off取消订阅。
2023-03-21 15:00:27 275 1
原创 项目中常见的代码优化方案
一个为 null 和 undefined 的判断,减少 || 类型的处理,用?使用数组或者字符串的 includes 方法,代替 indexOf 方法。校验多个表单项不能为空,使用策略模式代替 if-else。使用switch,object或者Map代替。利用filter,some,every优化代码。减少没必要的if...else判断。
2023-03-10 17:35:19 224
原创 Lodash基本使用
Lodash 是一个一致性、模块化、高性能的 JavaScript 实用工具库。里面有很多针对数组、对象、函数等一些方法。数组去重 union和uniqBy。深拷贝 cloneDeep。防抖 debounce。节流 throttle。
2023-03-10 15:06:55 1125
原创 vue3中toRaw使用
ref和reactive 数据每次修改都会被追踪,都会更新UI界面,也是非常消耗性能的,所以如果我们有一些操作不需要追踪,不需要更新UI界面,那么这个时候我们就可以通过toRaw方法拿到它的原始数据,,这样会优化一些性能。
2023-03-02 21:41:53 493
原创 vue3 shallowRef和shallowReactive
shallowReative与shallowRef在某些特殊的应用场景下,是可以提升性能的,前者针对对象,用于浅层作用的响应式数据处理,而后者只处理基本数据类型的响应式,不进行对象的响应式处理。
2023-03-01 16:59:20 547
原创 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 843
原创 export {default as xxx} from xxxxx写法
export {default as xxx} from xxxxx写法
2023-02-16 10:48:25 418
原创 <script setup>中父子组件传值及方法调用
中父子组件传值及方法调用 defineProps,defineEmits,defineExpose
2023-01-29 10:53:00 1910
原创 antd Table组件selectedRows翻页未保留上一页已选中数据(方法二)
antd Table组件selectedRows翻页未保留上一页已选中数据
2022-12-14 09:13:52 1089
原创 antd Table组件selectedRows翻页或重新搜索后未保留上一页已选中数据
antd Table组件selectedRows翻页或重新搜索后未保留上一页已选中数据
2022-12-02 16:34:33 982
原创 Typescript 泛型
泛型可以理解为在我们定义函数、接口或者类的时候,不预先指定其相关的类型,而是在使用的时候手动指定类型。但是这样,这个函数我只能传字符串类型的参数给这个函数,如果想传数字类型,布尔类型呢。如果想做到传入什么类型就返回什么类型,例如传入number就返回number,这时候就可以使用泛型。any 的缺点:一个变量设置为any后,相当于关闭了ts的类型检测,一般情况下不建议使用any。any:一个变量设置为any后,相当于关闭了ts的类型检测,一般情况下不建议使用any。需求:有个函数会返回任何传入它的值。...
2022-08-29 10:43:28 343
原创 Typescript类型
数字类型是我们开发中经常使用的类型,TypeScript和JavaScript一样,不区分整数类型(int)和浮点型(double),统一为number类型。一个字符系列,使用单引号(')或双引号(")来表示字符串类型。never 是其它类型(包括 null 和 undefined)的子类型,代表从不会出现的值。元组类型用来表示已知元素数量和类型的数组,各元素的类型不必相同,对应位置的类型需要相同。// 在元素类型后面加上[]...
2022-08-28 16:06:49 90
原创 vue中企业微信 第三方应用扫码登录(pc端)
企业微信 第三方应用扫码登录参考文档:接入指引 - 接口文档 - 企业微信开发者中心首先在login页面,写一个按钮,触发点击事件,引导用户进入登录授权页:<button @click="toWxLogin">企业微信扫码登录</button>toWxLogin(){ //授权登录之后目的跳转网址,需要做urlencode处理。所在域名需要与授权完成回调域名一致 let url = 'http://....' //服务商的Cor
2022-05-20 18:39:47 2395
原创 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 951
原创 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 850 1
原创 浏览器缓存:强缓存和协商缓存
介绍:浏览器缓存是为了节约资源,并且可以加速浏览网站的速度,当用户第一次进行访问网页的时候,浏览器在用户磁盘上对请求的文档进行保存,当用户第二次访问的时候,就会从本地直接显示,从而提高了访问页面的速度。浏览器缓存分为:强缓存和协商缓存两种。缓存的优点:减少了不必要的数据传输,节省带宽 减少服务器的负担,提升网站性能 加快了客户端加载网页的速度 用户体验友好缺点:资源如果有更改但是客户端不及时更新会造成用户获取信息滞后,如果老版本有bug的话,情况会更加糟糕。强缓存:如果资源没过
2022-04-12 15:44:37 1599 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 4070
原创 微信扫码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 4544
原创 微信扫码scanQrCode:permission denied
报错信息:安卓手机: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:35:15 7523
原创 浏览器的缓存机制
浏览器的缓存机制:就是把一个请求过的web资源(例如:html页面、图片、js、数据等)拷贝一份副本储存在浏览器中;缓存会根据进来的请求保存输出内容的副本,当下一个请求到来的时候,如果是相同的URL,缓存会根据缓存机制决定是否直接使用副本响应访问请求,还是向源服务器再次发送请求。缓存的好处:减少网络宽带产生较小的流量,减轻服务器的压力,渲染缓存的页面,就减少了对源服务器的访问,提高响应页面的速度,用户再次打开不用等待时间过长;缓存的规则:就是根据http协议头和html标签中的meta;从两个维度,
2022-03-05 23:08:37 235
原创 webpack的优化之SplitChunksPlugin
最初,chunks(以及内部导入的模块)是通过内部 webpack 图谱中的父子关系关联的。CommonsChunkPlugin曾被用来避免他们之间的重复依赖,但是不可能再做进一步的优化。从 webpack v4 开始,移除了CommonsChunkPlugin,取而代之的是optimization.splitChunks。optimization.splitChunks下面这个配置对象代表SplitChunksPlugin的默认行为。webpack.config.jsmod...
2022-03-05 18:19:21 2375
原创 uniapp中app应用和h5页面,调用微信h5支付
直接上代码:mixinsPayLoad(res) {//res接受后端的参数,mwebUrl为跳转微信支付路径 // #ifdef H5 window.location.href = res.mwebUrl; // #endif // #ifdef APP-PLUS const platform = uni.getSystemInfoSync().platform const webvie
2022-03-01 12:40:49 6163 1
原创 ios开发者添加开发测试机
从开发者中心进入,配置添加测试设备的udid,并重新下载配置文件1.登录进入开发者中心后,选择入下图2.点击左侧Devices,点击“+”,可看到如下图填写设备信息:UDID查看:使用手机端的Safari浏览器(必须是Safari)访问UDID查询网页www.pgyer.com/udid一步一步添加新设备3.设备添加完毕后 在列表中选择Profiles -> 点击我们的dev证书进入详情后,点击右上角edit,进入编辑模式后,主要关注下方...
2022-02-28 18:41:14 3581
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人