- 博客(32)
- 收藏
- 关注
原创 electron打包vue2项目+自定义协议加参数访问
需求: 将现有vue2 项目打包成桌面端格式,然后在别的系统内通过url方式启动exe并带携带userId实现免登录第一步:安装electron-builder,安装完毕之后electron-builder会自动向你的项目里加入一些打包需要的文件以及配置,这时候执行npm run electron:build已经可以帮你把项目打包成exe了。接下来就是实现url访问并登录第二步:注册协议。在electron主进程文件background.js文件中添加注册协议,修改注册表信息if (!quasar: {
2025-04-25 17:22:44
409
转载 vue2项目使用electron方式打包
参考文章:https://www.cnblogs.com/liangpi/p/17852162.html。
2025-02-17 11:50:07
112
原创 speechSynthesis实现语音播报功能
chrome://settings/content/sound 配置一下想要自动播放声音的网址。由于chrome安全机制,无法自动播放,必须在用户交互之后才可以自动播放。
2024-06-14 16:24:52
726
原创 vue3知识点总结
2:setup不能是一个async函数,因为返回值不再是return的对象,而是promise对象,模板看不到return对象中的属性和方法。但在setup中不能访问vue2中的配置,如果有重名,setup优先。2: 如果有一个对象数据,后续功能都不需要改变对象的属性,而是生成新的对象来替换 ===》shallowRef。attrs:值为对象,包含:组件外部传递过来的,但没有在props配置中声明的属性,相当于this.$attrs。包括:属性值的读写,属性的添加,属性的删除等。
2023-01-04 11:32:18
645
原创 vuex基本使用
vuex利用了vue的mixin机制,混合beforeCreate钩子,将store注入到vue组件实例上,并注册了vuex store的引用属性$store.在vue中实现集中式状态管理的一个Vue插件,对vue应用中多个组件的共享状态进行集中式的管理(读/写),也是一种组件间通信的方式,且适用于任意组件间通信。vuex的state是借助vue的响应式data实现的,getter是借助vue的计算属性computed特性实现的。actions:响应组件中用户的动作,通常写一些异步操作或者带逻辑的操作。
2022-11-01 14:59:15
479
原创 html2canvas实现页面截图
需求是将页面上存在的图表转换成图片的方式传给后端,然后后端生成word文档。图表使用的是echarts,如果只单独截图表部分的话可以使用echarts自带的api。内容还包含其他部分。于是就使用了html2canvas。
2022-10-28 18:36:33
894
原创 js中字符串常用方法
2: slice( ) 提取某个字符串的一部分,并返回一个新的字符串,且不改变原字符串。12: indexOf( ) 返回调用它的string对象中第一次出现的指定值的索引值,若未找到,返回-1。6: split( ) 使用指定的分隔符字符串将一个string对象分割成字符串数组,返回新的数组值,不改变原字符串。13:includes( ) 用于判断一个字符串是否包含在另一个字符串中,返回一个布尔值。4: replace( ) 替换元素出现的第一个位置,不改变原来的字符串,返回新的字符串。
2022-10-24 18:32:00
1603
原创 js中数组常用的方法有哪些
增加的元素N),表示从index开始删除length个元素,并从index开始新增元素1-N,放回被删除的元素组成的数组,返回值为被删除的元素数组,改变原数组。11: indexOf( ) indexOf(某元素,startIndex)从startIndex开始,查找某元素在数组中的位置,若存在,则返回第一个位置的下标,否则返回-1。7:slice( ) :不影响原数组,返回从原数组中指定下标到结束下标之间的项组成的新数组。2: push( ) 向数组后添加新的元素,并返回新数组的长度,改变原数组。
2022-10-22 20:24:27
231
原创 http协议相关
主机A收到后检查ack number是否正确,即是否为第一次握手发送的seq number+1,以及位码ack是否为1,若正确,主机A会再发送ack number =(主机B的seq number+1),ack=1,此时主机A处于establised(连接成功)状态。服务端收到客户端的FIN报文之后,通常需要等待完成数据的发送和处理,所以服务端会先发送一个ACK的响应报文,接着等待数据处理完成后再发送一个FIN报文,从而比三次握手多一次。2:get是不安全的,因为URL是可见的,可能会泄露私密信息。
2022-10-09 14:09:41
878
原创 webpack基础相关
它会以一个或多个文件作为打包的入口,将我们整个项目所有文件编译组合成一个或多个文件输出出去,输出的文件就是编译好的文件,就可以在浏览器端运行了。修改css loader中style-loader:因为style-loader是将css在打包到js中通过生成style标签引入的,而MiniCssExtractPlugin.loader是单独打包css文件使用link引入的。下载依赖包:npm install css-minimizer-webpack-plugin --save-dev。
2022-09-19 15:49:40
464
原创 二级树状结构穿梭框
项目后台管理需要使用二级穿梭框,就结合el-tree写了一个,仅限于二级树状图结构!如果有人觉得有哪里不太对可以在评论里直接指出,我们一起讨论哈!
2022-07-15 15:05:16
1582
6
原创 Promise学习总结
fs 文件操作require(‘fs’).readFile(‘./index.html’,(err, data) => {});数据库操作AJAX$.get(‘/server’,(data) => {})定时器setTimeout(() =>{},1000)支持链式调用,可以解决回调地狱问题1:什么是回调地狱?回调函数嵌套调用,外部回调函数异步执行的结果是嵌套的回调执行的条件2:回调地狱的缺点?不便于阅读,不便于异常处理3:解决方案?promise链式调用指定回调函数的方式更加灵活1:旧的:必须在启动异步任
2022-07-08 14:42:52
302
转载 前端模块化总结
CommonJs 是一种 JavaScript 语言的模块化规范,它通常会在服务端的 Nodejs 上使用。CommonJS规范规定,每个模块内部,module 变量代表当前模块。这个变量是一个对象,它的 exports 属性(module.exports)是对外的接口。加载某个模块,其实是加载该模块的 module.exports 属性。require 方法用于加载模块。CommonJS主要用于服务端的模块化,不适用于前端模块化:服务端加载一个模块,直接就从硬盘或者内存中读取了,消耗时间可以忽略不计浏
2022-07-06 15:38:52
184
原创 原型和原型链测试题
代码片段里的解释都是我自己理解的原型链,如果有人觉得哪里不对可以在评论里直接指出,我们一起讨论哈!测试题1测试题2测试题3测试题4测试题5
2022-06-13 16:54:34
308
原创 github基本操作
1:在github账号建立远程仓库2:给新建的远程仓库起别名git remote add 别名 远程仓库链接3:将本地项目分支推送到远程仓库git push 仓库别名 分支名4:拉取远程仓库分支到本地git pull 仓库别名 分支名5:克隆远程仓库代码到本地git clone 远程仓库地址clone会做如下操作:1:拉取代码2:初始化本地仓库3:创建别名origin6:团队协作:github中settings中的collaborators中添加成员,然后生成邀请函链接发给你要邀请的人。
2022-06-06 18:40:27
241
原创 git常用命令
git config --global user.name 用户名 设置用户签名git config --global user.email 邮箱 设置用户签名git init 初始化本地库git status 查看本地库状态git add 文件名 添加到暂存区git rm --cached 文件名 删除暂存区里面的文件git commit -m “日志信息” 文件名 提交到本地库git reflog 查看历史记录git log 查看详细信息(可以看到提交者的用户信息和完
2022-06-01 16:11:41
107
原创 vue数据劫持代理
//模拟vue中data选项let data = { username:'curry', age:18}//模拟组件的实例let _this = {}//利用Object.defineProperty()for(let item in data){ Object.defineProperty(_this,item,{ //get:用来获取扩展属性值的,当获取该属性值的时候调用get方法 get(){ return data[item] },
2022-03-04 16:40:44
157
原创 echarts切换页面后加载不出来的问题
项目上线后切换页面时发现echarts图表加载不出来了查阅之后发现在setOption之前加一句 document.getElementById('容器id名称').setAttribute('_echarts_instance_', '');或者 document.getElementById('trend-chart').removeAttribute('_echarts_instance_');在重新创建之前,移除之前创建的实例或者清空。setOption的时候就会重新加载。
2022-02-28 16:05:21
2802
3
原创 echarts自定义保存图片方法
echarts自定义导出图片需求是希望在导出柱状图的时候在顶部展示label,但是图表本身不展示label。echarts自带的saveAsImage没有关于数据项方面的配置。于是使用自定义的导出图片方法。第一步:在toolbox中加入自定义的工具方法。 myTool1: { show: true, title: '保存图片', icon: 'path://M939.6 655.5c-12.2 0-20.4 8.1-2
2021-08-03 11:11:50
3784
10
原创 vue中事件的防抖和节流
vue中点击事件的防抖和节流操作防抖(debounce)防抖:就是指触发事件后在 n 秒内函数只能执行一次,如果在 n 秒内又触发了事件,则会重新计算函数执行时间/** * @desc 函数防抖 * @param func 函数 * @param wait 延迟执行毫秒数 * @param immediate true 表立即执行,false 表非立即执行 */function debounce(func,wait,immediate) { let timeout; re
2021-06-23 18:34:02
1329
原创 safari浏览器的一些兼容性问题总结
safari浏览器的一些兼容性问题总结vue项目开发完毕之后在chrome、firfox等浏览器表现正常,但在safari浏览器中跳转首页时报错导致页面展示空白,报错信息提示是语法错误。猜测是safari对于部分es6语法不兼容导致的,于是在vue.config.js中引入babel-polyfill插件chainWebpack:(config) => { config.entry('main').add('babel-polyfill'),},此时仍然有报错信息,但报错信息改变了:
2021-06-23 16:57:03
4105
原创 iframe嵌入项目配置问题汇总
解决iframe嵌套自身项目时遇到的nginx的配置问题需求是需要将自己当前的项目嵌入到客户的系统里面去。问题1:iframe直接嵌套时显示拒绝访问导致无法嵌套。解决方案:在nginx上加配置设置允许访问的白名单。add_header X-Frame-Options 'ALLOW-FROM http://XXX.com'这种方式在谷歌和火狐已经废弃,在IE有效add_header Content-Security-Policy "frame-ancestors http://XXX.com"
2021-04-27 11:13:46
3419
2
原创 总结css实现三栏布局的几种解决方案
总结css实现三栏布局的几种解决方案参考:前端经典面试题CSS三栏布局实现以上布局,其中content中为左边定宽300右边定宽300且中间自适应宽度的三栏布局。<div class="panel"> <div class="header">header</div> <div class="main"> <div class="sidebar">sidebar</div> <!--
2021-04-15 15:01:55
204
原创 使用svg画虚线
最近做项目遇到了画虚线的问题,而且不是简单的border就能解决的。查阅了资料选择使用svg的line标签来实现。<svg version="1.1" xmlns="http://www.w3.org/2000/svg"> <line x1="" y1="" x2="" y2="" stroke-dasharray="3 2" stroke="#cbe6a3"/></svg>要注意line的起始位置的坐标轴是相对于整个svg来说的,个人理解svg相当于整个画
2020-11-17 18:53:06
8075
原创 element组件方法如何获取默认参数的同时自传参数
使用element组件时有一些自带的组件方法,有些方法里也会有一下默认参数,但如果遇到即需要默认参数又需要其他参数的时候该怎么办呢?例: <el-checkbox-group v-model="checkedSecondMenu" @change=handleCheckedSecondMenuChange"> <el-checkbox v-for="secondMenu in menuItem.children" :label="secondMenu.id" :key="s
2020-08-21 16:29:14
1538
转载 var 、let和 const
在ES5之前,js中只有两种类型的作用域:全局作用域和函数作用域。ES6中新增了块级作用域。全局作用域全局声明(不在函数内)的变量拥有全局作用域,全局变量可以在js代码的任何位置访问。 var count = 1; function add(){ console.log(count); } add() // 1let、var在函数外部声明的变量都是全局作用域。函数作用域...
2020-02-26 21:36:25
260
原创 如何在页面中插入文本节点?
首先能想到的第一种方法就是使用innerHTML。`<div id="box"> <span>我插入的文本节点是:</span> </div> var oDiv = document.getElementById('box'); oDiv.innerHTML = "哈哈哈"但这种方法在插入节点的同时就会覆盖原本标签的...
2020-02-26 18:29:49
633
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅