慕水渔
码龄7年
关注
提问 私信
  • 博客:81,518
    81,518
    总访问量
  • 87
    原创
  • 66,516
    排名
  • 230
    粉丝
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:北京市
  • 加入CSDN时间: 2017-12-06
博客简介:

qq_41293573的博客

查看详细资料
  • 原力等级
    当前等级
    3
    当前总分
    208
    当月
    0
个人成就
  • 获得73次点赞
  • 内容获得19次评论
  • 获得105次收藏
  • 代码片获得447次分享
创作历程
  • 1篇
    2024年
  • 4篇
    2022年
  • 10篇
    2021年
  • 8篇
    2020年
  • 67篇
    2019年
成就勋章
TA的专栏
  • PHP
  • 浏览器插件
    1篇
  • nuxt
    3篇
  • electron
    2篇
  • taro
  • vue
    3篇
  • css
    1篇
  • HTML
    17篇
  • javascript
    32篇
  • jQuery
    8篇
  • jsp
    2篇
  • 高级程序设计
    7篇
  • Node
    14篇
兴趣领域 设置
  • 前端
    javascript
  • 后端
    node.js
创作活动更多

2024 博客之星年度评选报名已开启

博主的专属年度盛宴,一年仅有一次!MAC mini、大疆无人机、华为手表等精美奖品等你来拿!

去参加
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

前端实现模块懒加载

通常对于无规则长列表带来的加载耗时长、性能差的问题,首先想到的方案就是通过滚动位置判断当前模块是否进入视图中,来判断模块是否加载。子模块ChildCom中监听加载,获取准确高度,并通过observe挂载在intersectionObserverRef上。实例化子组件的时候传入intersectionObserverRef、intersectionEntriesMapRef。1. 要预先知道每个模块的准确高度。通常情况下这个高度的是动态的,难以在初始状态下获取所有模块的高度。
原创
发布博客 2024.08.27 ·
325 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

三行代码解决electron-updater升级失败问题

在21年末遇到公司遇到一个比较奇葩的bug,electron开发客户端在进行自动升级时中途闪退没有任何日志。经仔细观察,是在新包下载完后对老版本包进行替换的时候闪退,无意中发现在这一过程里,任务管控器里有两个应用进程,猜想是旧的任务没有完全退出进程,于是查阅api,对关于退出任务、进程、关闭窗口的api进行组合测试,最终总结了一套解决方案~如下代码:ipcMain.on('isUpdateNow', (e, arg) => { //console.log("开始更新");
原创
发布博客 2022.05.18 ·
1797 阅读 ·
0 点赞 ·
1 评论 ·
2 收藏

vite中优雅使用vue-router

接触过nuxt框架的小伙伴可能知道,在nuxt中不需要手动的去添加路由表,因为在pages文件夹下定义的文件会自动转换成路由,例如pages/home.vue,即可通过/home去访问该页面。当然在vite中可以利用vite提供的Blob导入,实现nuxt那样一键式创建路由。具体实现如下:创建路由文件router.js:import {createRouter as _createRouter, createWebHistory} from 'vue-router';const pages = i
原创
发布博客 2022.05.08 ·
4456 阅读 ·
1 点赞 ·
1 评论 ·
6 收藏

关于H5唤起某APP,未安装调起下载那些事

需求背景在H5页面上进行app引流。点击某个按钮时,判断用户是否已经安装某APP,若已安装,则直接打开APP;若未安装,则开始下载APP;实际上,JS 是没有判断 APP 是否安装的方法的,那么我们只能想办法来解决这个问题了。android端处理方案在android端大多数是通过scheme命令直接打开APP。首先定义好你的scheme命令已经app下载地址,如下:let schemeUrl = 'com.***.cn://***:8080/loadapp';let downloadUrl =
原创
发布博客 2022.04.02 ·
2336 阅读 ·
2 点赞 ·
0 评论 ·
5 收藏

js实现AES加密

安装第三方加密包npm i crypto-js加密代码let str = '****';// 需要加密的字符串let keyStr = '****';// 密钥let ivStr = '****';// iv偏移量const key = CryptoJS.enc.Utf8.parse(keyStr); // 十六位十六进制数作为密钥const iv = CryptoJS.enc.Utf8.parse(ivStr); // 十六位十六进制数作为密钥偏移量let srcs = Crypt
原创
发布博客 2022.01.26 ·
10871 阅读 ·
5 点赞 ·
0 评论 ·
4 收藏

js获取系统及版本

// 获取系统版本export function getOsVersion() { var u = navigator.userAgent, version = '' if (u.indexOf('Mac OS X') > -1) { // ios var regStr_saf = /OS [\d._]*/gi var verinfo = u.match(regStr_saf) version = 'IOS' + (verinfo +
原创
发布博客 2021.12.27 ·
1274 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

谷歌插件采坑集

谷歌浏览器插件是一种小型的用于定制浏览器体验的程序。通过插件,可以自定义浏览器的一些行为来适应个人的需要,只要你会HTML,JavaScript,CSS就可以动手开发浏览器插件了。开发谷歌浏览器插件,就相当于在谷歌浏览器的基础之上进行活动,站在巨人的肩膀上,操作很多东西都方便了一些。有了插件,我们可以定制js爬虫、屏蔽网页广告,网页实时查词,修改http请求头,等等,能做的东西很多插件包构成关于谷歌插件无非四个主要文件,manifest.json、popup.html、background.js,co
原创
发布博客 2021.10.11 ·
438 阅读 ·
1 点赞 ·
0 评论 ·
3 收藏

关于electron应用mac公证问题

对于 Electron 应用,它有 electron-notarize 的工具来做公证。但遗憾的是,我使用的时候出现了各种各样的报错,相关GitHub issue上也发现有人出现跟我类似的问题,不过没有明确的解决办法。折腾半天,决定用原始的办法来解决——命令行工具。一句命令xcrun altool --notarize-app --primary-bundle-id “com.xxx.xxx" --username “your developer appleid" --password “app-pa
原创
发布博客 2021.09.24 ·
971 阅读 ·
1 点赞 ·
1 评论 ·
1 收藏

使用rollup打包应用

Rollup 是一个 JavaScript 模块打包器,可以将小块代码编译成大块复杂的代码。他与webpack的最大区别如下: 特性: rollup 所有资源放同一个地方,一次性加载,利用 tree-shake特性来 剔除未使用的代码,减少冗余 webpack 拆分代码、按需加载 webpack2已经逐渐支持tree-shake rollup: 1.打包你的 js 文件的时候如果发现你的无用变量,会将其删掉。 2.可以将你的 js 中的代码,编译成
原创
发布博客 2021.07.02 ·
1621 阅读 ·
1 点赞 ·
0 评论 ·
2 收藏

nodejs获取当前连接的网络ip

获取当前连接ip的方法:import net from 'net';function getNetworkIP() { return new Promise((resolve,reject)=>{ let createConnection = net.createConnection; var socket = createConnection(80, 'www.***.cn);//进行socket 连接的地址 socket.on('con
原创
发布博客 2021.04.21 ·
4760 阅读 ·
3 点赞 ·
0 评论 ·
1 收藏

安卓部分浏览器长按保存图片问题

在安卓部分浏览器上长按查看base64图片一片空白,点击保存图片也提示保存失败,加入以下代码即可解决。1.页面上创建一个canvas容器,设置其隐藏<canvas v-show="false" ref="picture"></canvas>2.使用canvas重新绘制并赋值 this.imgUrl = "data:image/jpeg;base64," + res.content.base64_image;//这个路径只能苹果保存 let img = new Ima
原创
发布博客 2021.04.08 ·
1444 阅读 ·
1 点赞 ·
0 评论 ·
2 收藏

taro路由传参

A页面通过路由跳转到B页面 同时传参到B页面import Taro from '@tarojs/taro' itemClick = (id) => { Taro.navigateTo({ url: `/pages/index2/index2?id=${id}` }) } B页面接受传递参数import { getCurrentInstance } from '@tarojs/taro'const id = getCurrentInstance().router.pa
原创
发布博客 2021.03.09 ·
1674 阅读 ·
1 点赞 ·
0 评论 ·
1 收藏

vue自定义懒加载指令

指令方法:Vue.directive('lazyHtml', { inserted: function (el, binding) { let wrapEL = document.createElement('div'); wrapEL.innerHTML = binding.value.html; let num = binding.value.defaultNum||2;//预加载图片数量 let imgList = wrapEL
原创
发布博客 2021.03.05 ·
287 阅读 ·
1 点赞 ·
1 评论 ·
0 收藏

使用keep-alive的正确姿势

1.在路由表定义meta属性{ path: '/', meta:{ keepAlive: false, // 需要被缓存 }, name:'index', component: require('@/views/index').default }, { path: '/order',
原创
发布博客 2021.03.03 ·
212 阅读 ·
1 点赞 ·
1 评论 ·
0 收藏

vue-cli4项目在ie下白屏问题

需要添加一些插件编译项目需要的依赖包:1.npm i --save-dev @babel/preset-env @babel/plugin-transform-runtime2.在项目根目录添加babel.config.js,内容如下:module.exports = { presets: [ '@vue/app', [ "@babel/preset-env", { "useBuiltIns": "entr
原创
发布博客 2021.03.03 ·
760 阅读 ·
2 点赞 ·
1 评论 ·
1 收藏

requestAnimationFrame详解

为什么要说它,源于看到的一道面试题:问题是用js实现一个无限循环的动画。首先想到的是定时器<!doctype html><html lang="en"><head> <title>Document</title> <style> #e{ width: 100px; height: 100px; background: red;
转载
发布博客 2020.12.15 ·
262 阅读 ·
1 点赞 ·
0 评论 ·
1 收藏

js调用微信支付

公众微信号调起微信支付的时候,有的时候调起支付成功,有的时候调起支付失败。利用抓包工具抓取数据显示授权和调用后台的微信预支付订单接口都成功并且都返回正确的数据。但是调起支付的时候传入的data老是弹出{‘isTrusted:false’},正常的data应该是调用生成预支付订单的返回数据,即后台给返回的调起微信支付所需要的数据参数。我的代码:<script src="./js/jquery.js"></script><script src="http://res2.wx.q
原创
发布博客 2020.12.09 ·
3250 阅读 ·
3 点赞 ·
0 评论 ·
5 收藏

HTML中显示代码高亮及行号

下载相关js和css文件首先进入highlightjs官网https://highlightjs.org/根据自己的需求勾选需要高亮的语言点击下方下载按钮。然后下载添加行号js文件https://github.com/wcoder/highlightjs-line-numbers.js/将相关文件复制到项目中下载的两个文件解压后将default.css、dark.css、highlight.pack.js、highlightjs-line-numbers.min.js复制到项目文件中..
原创
发布博客 2020.10.13 ·
6166 阅读 ·
15 点赞 ·
4 评论 ·
31 收藏

nuxt踩坑集

目录结构assets: 资源文件。用于组织未编译的静态资源如 LESS、SASS或 JavaScript。components: 组件。layouts: page: 模板页面,默认为 default.vue可以在这个目录下创建全局页面的统一布局,或是错误处理页面页,需要提供一个nuxt 标签,类似于router-viewmiddleware: 中间件,放置自定义的中间件,会在加载组件之前调用。可以在页面中调用: middleware: ‘中间件名称’。pages: 页面,index.vue 为根页
原创
发布博客 2020.09.30 ·
1839 阅读 ·
1 点赞 ·
1 评论 ·
6 收藏

nuxt中刷新页面后防止store值丢失

1、 配置插件()plugins: [ {src:'~/plugins/storeCache',ssr: false},]注意:要禁止服务端运行,不然会报错,这个事件是在客户端添加的,不是在服务端小渲染的时候添加的。2 、在plugins/storeCache.js写代码,如下。export default function(ctx){ //离开页面 刷新前 将store中的数据存到session window.addEventListener('beforeunloa
原创
发布博客 2020.09.30 ·
1211 阅读 ·
1 点赞 ·
0 评论 ·
2 收藏
加载更多