自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

ヾ(≧O≦)〃嗷~神么也木有

  • 博客(76)
  • 资源 (3)
  • 收藏
  • 关注

原创 【腾讯云 Cloud Studio 实战训练营】在线 IDE 编写 canvas 转换黑白风格头像

不得不承认,对于开发而言,cloud studio 简直就是生产力大解放,烦恼的环境配置帮你做了,本地链接太多也不怕出错了,老旧电脑的卡顿不是问题了,系统与 IDE 版本不兼容也消失了。虽然在线 IDE 炒了许多年,但我真心觉得 cloud studio 才是那“在月亮上迈出的第一步”。而对于初学编程的人而言,cloud studio 更是一大福音,新手无需分神解决编辑器安装中出现的异常,也无需关注操作复杂等问题。

2023-08-14 19:15:26 1737 3

原创 【腾讯云 Finops Crane 集训营】学习云原生成本优化

一直以来,云原生用户在确保业务稳定和优化运营成本之间,做着两难的选择,为了保证业务的稳定运行,多数用户面临着服务资源配置浪费、现有资源难以管理、计费方式不够灵活透明等诸多问题。基于越来越多的企业开始拥抱云上服务,腾讯云率先在国内推出了基于云原生技术的成本优化开源项目Crane。

2023-05-14 00:24:09 5826 6

原创 github pr 出现的一些权限问题

心血来潮,给一个github的开源项目测了一个bug,提完issue 想着顺手修一下,然后有了本篇内容。

2023-05-05 10:19:29 248

原创 开放原子训练营(第二季)RT-Thread Nano学习营一探究竟

物联网是指通过信息感知设备和信息传输设备,按约定的协议,将物与物、物与人通过网络相连接,物体通过信息传播媒介进行信息交换和通信,以实现智能化识别、定位、跟踪、监控与管理等功能。感知层:通过各种传感器采集信息,识别物体的特征、位置、状态等信息网络传输层:通过网络实现物与物、物与人之间的信息交换应用层:依据采集的大量数据,通过计算机信息系统进行存储、处理与分析,实现对物体的智能监控与控制那么你可能有疑问,这么牛逼的东西是怎么运行的,那些能控制硬件的代码是怎么写出来的呢?

2023-04-26 00:45:29 1405

原创 Kyligence Zen 产品体验 --- 初识庐山真面目

扁平的学习曲线:Kyligence Zen 全程采用界面和图形化的开发方式,即便是没有使用经验的用户,也仅需几分钟即可轻松上手海量的模板支撑:Kyligence Zen 提供包含指标体系、目标体系和分析仪表盘等内容,支持用户一键导入高速查询响应:Kyligence Zen 支持处理上亿行数据的高速查询,通过剪枝、聚合等方式以豪秒级响应时间浏览大规模数据,使企业的决策过程更为迅速和更加准确。

2023-04-18 01:02:43 522

原创 新知实验室_初探腾讯云音视频

这个加密还是很复杂的,但是放在前端依旧不安全,在真实的线上环境, UserSig 的计算代码应该放在业务服务器上,然后由 App 在需要的时候向服务器获取实时算出的 UserSig。有些童鞋被本地数据流和远端数据流的概念困扰,这里简单说一下,本地数据流可以理解为自己的声音和图像,远端数据流就是房间中其他人的声音和图像。这里已经对本地的数据流进行了采集和播放,并指定了摄像头和麦克风,页面此时可以看到自己了,当然,为了不影响你们的学习兴趣,我自己马赛克了 😃。当然了,到这一步只能算万里长征的第一步。

2022-11-24 16:58:51 13009

原创 vue-cli 与 axios 跨域的cookie配置,教你摆脱后端依赖

写在前面某天,某人正在认真的写 bug突然,线上环境有个问题,测试环境无法复现。测试说,莫得办法,连上线上环境自己搞下?某人:那不就跨域了吗??赶紧翻翻 vue-cli 的跨域咋配置的?module.exports = { devServer: { proxy: { '/api': { target: '<url>', ws: true, changeOrigin: true }, '/fo

2022-03-08 15:49:45 5533

原创 判断系统的暗黑模式

<!DOCTYPE html><html> <head> <meta charset="utf-8" /> <meta name="viewport" content="width=device-width, initial-scale=1"> <title></title> <style> :root { color-scheme: light dark;

2022-02-24 14:11:37 500

原创 javascript 零宽断言,看这篇就足够了

1、定义先来看一个例子:在字符串 ‘北京市(朝阳区)(西城区)(海淀区)’ 中,取出北京市这段不被()包裹的字符我们分析一下这个题目:这个题,要求取出没有被() 包裹的内容也就是说,我要断言某个位置上的内容不含有完整的(),且这段内容的后面紧紧跟随的是(那么这段内容本身是什么并不重要那我可以构建一个正则表达式如下/.*?(?=\()/这个正则什么意思呢?假设你已经知道在正则中:. 表示任意字符*表示可以匹配任意的次数?表示重复前面的内容,要么零次,要么一次,最多重复一次所以

2021-07-26 19:01:21 1623 1

原创 前端导出 excel ,设置字体,列宽,行高,对其方式,合并单元格等效果

先看实现后的图

2021-06-23 18:15:45 3471 5

原创 keep-alive 中使用 show-overflow-tooltip 切换路由 tooltip 不消失的解决办法

背景不管是在移动端还是 pc 端,都有一些需要缓存数据的场景。比如,在一个数据展示页,这是一个 table,当用户点击某一行会进入这个条目的详情。当用户返回展示页的时候,我们希望能帮助用户留住之前的诸如:筛选条件、跳转页数 等数据。vue 的 keep-alive 可以帮我们做这个事情。现在,这个 table 中有些数据很长。比如一段携带参数的 url :https://www.baidu.com/link?url=tsptvz-cU2m2HFPFwje315C6Y8BLh0nPi5xD8t-RL

2021-05-27 20:17:45 1883 10

原创 import 与 require 到底是深复制还是浅复制

写在前面的话任何从网上抄袭来的消息,都有虚假的可能我在面试过程中,面试官问我,import 和 require 引入的区别答案当然不那么愉快了我问了其他的同事,有的说是引用与复制的区别,有的说是深拷贝与浅拷贝的区别我决定自己敲代码试一下。首先是require可以看到 a.js 中导出的 a,在 b.js 中一直是 0而 obj.name 从 hello 变化为了 world然后是 import ,这个就比较简单了可以看出 import 的表现和 require 是一致的结论:不管

2021-04-21 19:21:48 1824 1

原创 vue-cli 中如何使用 mavon-editor关闭CDN, 使用本地加载

经过测试,官方的办法不能引入highlightjs/styles/github.min.css,所以导致代码片段不能添加高亮的样式因此,直接改成使用 css 的 @import url() 方法来引入另外,不需要按照官方的办法使用copy-webpack-plugin 将代码从 /node_modules 复制到 /dist 下。因为 vue-cli 中打包的时候,/public 下的内容会直接放到打包后的 /dist 目录下,因此,我们直接从浏览器的 source 下把代码复制到项目的 /publi

2021-04-15 15:17:44 644 2

原创 vue中实现 楼层效果

需求简介楼层效果在购物网站比较常见。典型的楼层效果,需要照顾两个需求:就是点击某个楼层,则页面滚动到相对应的位置页面滚动到某个位置,对应的楼层要有高亮的提示效果来张图示意一下:当我点击右侧的楼层按钮: 为你推荐,则页面滚动到“为你推荐”这个位置。实现难点这玩意说实话不复杂,直接锚点跳转<a href="#id" ></a>就可以。但是在 vue 项目中,路由的实现占据了hash,那么再使用锚点跳转,路由也会跟着改变。这显然不是我们想要实现的效果。另外,页面

2021-03-16 13:26:21 4763 4

原创 前端 日志自动滚动效果

一、需求当某个程序在后端运行的时候,前端经常要显示一个动态的进度条,或者 loading 的动画,或者百分比的数字当然,更好的效果是展示给用户程序运行的具体细节,比如运行中记录的日志这就好像电视剧结束后播放的演员表一样二、实现一般来说,有两种方法来实现这个需求。1、scrollIntoView()scrollIntoView()方法会滚动元素的父容器,使调用scrollIntoView的元素在父元素中可见。语法如下:element.scrollIntoView(); // 等同于elem

2021-02-01 20:35:54 2226

原创 最简单的分页组件-基于 elementui 的分页二次封装

背景一般表格比较多的项目中,多会涉及到分页和条件检索。如果每个表格单独配置一个分页,后期维护起来比较繁琐,而且,写代码也是copy来copy去,十分烦恼。因此,基于elementui 的分页组件的二次封装就应时而生了。子组件代码在分页子组件中,我只关心当前页是第几页,以及共有多少页。很显然,默认的分页,当前页肯定是第一页,而共有多少页,需要看后台返回的数据总数量,除以每页显示的数据量简单来说,就是Math.ceil(count / pageSize)下面是分页组件具体的代码。<tem

2021-01-05 14:55:37 394

原创 mac 搭建 grafana 的二次开发环境

grafana 是开源的图表数据展示系统,可以配置很多的 dashboard, 还可以下载别人已经配置好的 dashboard。这篇博客介绍下如何在 mac 下搭建 grafana 的二次开发环境。一、安装 grafana首先,我们可以通过 brew 把 grafana 安装到系统里,来看一看这个开源系统的功能。如果你的 brew 是直接可用的,就在 terminal 中直接运行下面的命令,否则,需要先 brew update 一下。brew install grafana装好以后,通过如下命

2020-12-15 22:47:43 1120

原创 leetCode 之 321.拼接最大数 js

题目如图思路假设一个数组 m,我们为了求解其按照内部元素顺序所能组成的所有的 n 位数的最大数,实现一个函数 getMax针对数组 m、n分别求取其最大值,想要使得最大值的位数之和为 k,则需要实现一个mergeArray 的方法,用来 merge 两个最大值数组代码 const m = [3, 4, 6, 5], n = [9, 1, 2, 5, 8, 3], k = 5 const getLargerNum = (m, n, k) => { cons

2020-12-02 17:33:43 325

原创 leetcode之 454.四数相加 II js

题目如图思路随机取两个数组,计算其内部任意数字的求和sum,并已和为键,出现次数为值,存储在一个对象中,如sum为1,sum出现次数为2,则 sumList = {1: 2}计算另外两个数组内部任意数字之和temp,并与 1 中的sum做对比,如果二者之和为 0(sun = -temp),则可记为出现一个元组。代码function sumCompute(a, b, c, d) { const l = a.length if (!l) { return 0 } const

2020-11-27 12:24:55 214

原创 vue elementui 中使用 form submit 和 axios 提交数据

有一个通用的 form 组件,内部渲染了海量的 form 元素,有input、checkbox、select,radio 等。这样一个组件,我肯定不能手动排版啊。果断跟后台商量一下,通过后台返回的 json 数据来动态渲染,另外一些不方便放回的,本地写个json。写完美滋滋。一提交数据,发现后端验证不通过,杀人.jpg打开 network,看看何方妖孽在兴风作浪?发现由于 vue 中,所有的表单数据都会定义在 data 函数的 form属性下data(){ return { form:

2020-11-25 11:22:59 6552

原创 基于 elementui 的时间组件,分页组件的二次封装

在后台管理系统中,开发人员面临最多的开发任务,table 数据管理应有一席之地。而随之而来的,就是数不清的筛选,排序操作。而且每个table,都会配置一个分页用来更好的显示数据。本文就从这个需求触发,来聊一聊时间组件和分页组件的二次封装。为什么要二次封装elementui 的各种组件做的很友好,但偶尔神经的产品就是不喜欢大众风格,非得独树一帜这时候,在每个有 table 的位置都去做一个繁琐的分页,可以想像一下发生的问题:代码量增加不少,阅读就会很繁琐;工作量也增加不少;更重要的是,不利于

2020-11-02 13:45:22 910

原创 vue动画入门之小球飞入购物车

小球飞入购物车,是购物类 APP 常见的效果,飞入的动画效果可以有多种方式来实现。1、技术方案css 有两种方法可以实现同样的效果:1、利用 animation 动画2、利用 transform 和 transitionjavascript 中也有运动函数的概念https://blog.csdn.net/zhai_865327/article/details/89249138张鑫旭大神有一篇博客,讲的也是 js 抛物线运动,写的非常详细:JavaScript与元素间的抛物线轨迹运动

2020-10-30 12:47:10 1043 2

原创 将后台返回的UTC时间格式化为本地时间的方法

背景在前后端数据接口通信中,后台返回的时间往往是 UTC 格式的,即2020-10-12T10:31:35.891724+00:00这种。作为前端,我们需要将其转换为标准的本地格式,并用“YYYY-MM-DD HH:mm:ss”这种格式呈现给用户,用户才能看得懂。那么通常怎么将他们进行转换呢?探究先来理解下 UTC 时间和本地时间以北京为例,我在写这篇博客的时候,时间是:var d = new Date()d.toLocaleTimeString() // "上午10:46:42"而此时

2020-10-13 12:05:26 2583 3

原创 mock 学习笔记

文章目录1、安装2、使用3、语法3.1 DTD3.1.1 生成规则3.2 DPD3.2.1 内置的占位符3.2.2 扩展自定义占位符4、API5、更多示例1、安装npm i mockjs -D2、使用// 引入const Mock = require('mockjs')// 传递参数生成数据,如果传入的是fn,则返回fn执行后的返回值,否则,会返回根据template生成的值const data = Mock.mock(rurl?, rtype?, template|function( o

2020-09-01 12:42:34 269

原创 js 防抖和节流

节流简单讲就是尽管你非常频繁的触发事件,但是单位时间内我只会执行一次。比如窗口的 resize 事件,在拖动浏览器窗口的过程中,resize是会不断执行的,频率非常之高,简直令人发指。所以很有必要做一个节流,让事件按照一定的频率来执行,从而大大减少执行次数。function throttle(fn, wait=500){ let last = 0 return function (){ let now = Date.now() if(now - last > wait

2020-07-23 16:00:46 915

原创 写一个获取元素 xpath 的 chrome 插件

需求哈哈哈,本人还是很暖的,开会的时候大家一起聊天,聊到了测试是怎么做测试的。然后测试给我们演示了一下,每次编写测试用例,都要通过 chrome 获取元素的 xpath,很麻烦。我就多嘴问了一句,为什么不自己弄一个自动获取 xpath 然后读成想要格式的插件呢?测试:我不会,没研究过。老板:那你来帮他实现一个吧。***,你把需求理顺了放进 tapd 。我:反手给我自己一个大嘴巴子!梳理好在之前对 chrome 插件也略有所闻,嘿嘿。先想想需求,鼠标点击一个元素的时候,自动读取该

2020-07-22 11:08:57 1085 9

原创 记录一下 javascript 的一些方法

计算嵌套对象层级的深度我有这样一个对象,长得像佟丽娅,哈哈哈哈,做梦笑醒。重来!长得是这个样子:{ children: [ { children: [ { children:[ ] },{ children:[ ]

2020-07-10 10:12:25 143

原创 vue router 根据路由区分用户权限并生成动态侧边栏

背景往往在管理后台系统中,vue-router 要做更多的事情挂载组件到页面根据不同的用户角色,如:超级管理员,审计用户,普通用户等来做权限管理生成复杂的侧边栏那么,如何使用一套定义好的 router 来做到以上三个需求呢?分析首先,我们来细致的分析一下这三个需求有哪些具体需要挂载组件到页面中想必不用多说了,vue-router 本来就是做这个的区分不同用户角色用户角色是用户登录后后台返回的,比如这个字段是user_role,那么,首先,我们可以把这个字段首先存储在 vuex

2020-07-04 13:36:44 3292 8

原创 扩展 js Date 对象,实现时间美化

背景Date对象是 javascript 中常用的对象之一,用来提供和解析时间与日期。通常,后端返回的数据中,日期是2020-06-23T12:01:59+08:00这种,或是其他不符合前端显示需求的格式。因此,我们需要手动将日期转换成yyyy-MM-dd hh:mm:ss的格式,这个过程,就是美化时间的过程。如何实现时间美化一般,我们有几种方式来对时间进行美化。moment.jsmoment.js是一个第三方包,用来操作时间和日期。moment 提供了诸多方法,如moment().fo

2020-06-23 13:55:47 549

原创 Git中子模块的使用

Git中子模块的使用提炼用法how to create submodule relations? git clone ssh://git@3917f6dff4e8:20022/zhilan/sensor/tt.git git submodule add ssh://git@3917f6dff4e8

2020-06-22 15:53:12 188

原创 typescript 进阶

泛型泛型(Generics)是指在定义函数、接口或类的时候,不预先指定具体的类型,而在使用的时候再指定类型的一种特性。简单理解实现一个函数 createArray,它可以创建一个指定长度的数组,同时将每一项都填充一个默认值:function createArray(length: number, value: any): Array<any> { let result = []; for (let i = 0; i < length; i++) {

2020-06-22 15:28:16 325

原创 sequelize API 常用操作整理

目录sequelize 链接数据库配置查找数据按主键查找按条件查找查找全部数据查找,如果没有则创建分页查找并排序创建批量创建单独创建更新单独更新查找同时更新删除单独删除批量删除多个数据多个表sequelize 链接数据库配置{ dialect: 'mysql', database: 'databasename', host: '**********', port: ****, username: 'root', password: '***********

2020-06-22 11:57:54 1154

原创 快速创建sequelize需要的数据表模型

egg 项目在利用 sequelize 操作数据库的过程中,不可避免要用 model 来映射数据库中的表结构与字段。利用 egg-sequelize-auto 可以快速生成表模型1.全局安装 egg-sequelize-auto 与 mysql2npm install -g egg-sequelize-autonpm install -g mysql22.进入项目文件夹cd egg-demonstrate3.生成需要的表结构egg-sequelize-auto -o "./model" -d

2020-06-22 10:25:08 1514

原创 优雅的使用 async与 await 处理 promise 的 reject

问题javaScript 中有很多异步操作,比如ajax获取数据。假如有一个获取表格数据的请求,基于这个请求获取一个数据的详情axios.get('/api/table_list') .then(res=>{ let id = res[0].tableId axios.get('/api/table_detail?id='+id) .then(res=>{ randerToView(res) }) .catch(err=>handelErr(err

2020-06-19 21:52:50 4486 2

原创 egg sequelize postgres 关联查询及分页问题

一、背景我使用 egg 项目做 node 接口开发。由于项目的特殊性,需要同时连接 mysql,mongoDB 和 postgres。二、环境和技术栈egg 创建模板还是非常方便的,不会的童鞋可以到官网看一下。我比较喜欢自己搭建开发的 template,这样可以清楚的剔除冗余代码,也可以自由配置,出现问题能快读定位,不必花时间去理解别人的代码是怎样构建的,逻辑是如何实现的。搭建环境根据 egg 官方文档,创建如下项目目录egg-example├── app│ ├── controll

2020-06-17 11:20:52 1619

原创 简单实现 MVVM 的订阅与数据劫持

MVVM 的设计模式非常多见,这里就不细说其出处了。学生反馈一个面试题,说实现一个简单的 类似 vue 的 MVVM demo,自己尝试了一下,做个记录吧。响应式原理首先,先要理解 vue 的响应式原理,是数据劫持,即数据变化的时候,自动重新渲染相关页面。其实这个需求是非常容易的,只要理解了 Object.defineProperty,大部分人都可以实现。let data = {}, temp = ''Object.defineProperty(data, key1, { set(value

2020-06-11 11:52:02 265

原创 vue 中 setInterval 创建和销毁

问题setInterval 是间隔调用,与之类似的还有 setTimeout。这两个 API 通常用来做 ajax 短连接轮询数据。比如有一个 logs.vue 是用来展示某个正在执行的进程产生的日志:<template> <div> <p v-for="item in logList" :key="item.time"> <span>{{"[" + item.time + "]"}}</span> <span&gt

2020-05-31 17:14:54 8783

原创 ssh相关问题汇总

ssh 是非常常用的用来访问服务器的手段。就几个问题,做一次记录,省的以后忘记了。免密登录1 将 pubkey 传递到 server端,这需要你先生成一对秘钥,然后将其中一个发送到服务端,这样每次登录的时候,如果秘钥匹配,那么就可以直接登录了ssh-keygen -ossh-copy-id username@serverhost2 暴力方法,修改~/ssh/config目录,增加Host aliyunserverHostName 192.168.0.43Port 22User root

2020-05-11 17:46:49 210

原创 node利用 fs 模块生成 csv

node 的 fs 模块是非常常用的模块,用来操作文件,文件夹等非常方便。在前后端开发中,时常需要将数据导出为 csv,txt,甚至 pdf,网上很多案例都是使用了第三方库。其实,fs 模块就足以帮我们完成简单的数据导出到文件操作。下面,让我们用案例来看下,如何将数据导出为 csv 文件。新建文件夹 node-csv在文件夹内新建文件 demo.js用编辑器打开,编辑 demo.js...

2020-04-23 12:28:46 1526 2

原创 node crypto生成公钥私钥进行数据加解密

crypto 是 node 内置的模块,用来做数据加解密,非常方便。之前,我们的前端用的是 jsencrypt 做加密,后端则用 node-rsa 做解密,公钥和私钥都是通过 node-ras 生成的,代码如下const NodeRSA = require('node-rsa')let key = new NodeRSA({ b: 1024 }) key.setOptions({ ...

2020-04-17 21:44:28 2372 11

前端导出 excel ,设置字体,列宽,行高,对其方式,合并单元格等效果

一个导出excel的demo,包含导出的逻辑代码和依赖包,下载以后请执行 npm install ,然后起服务访问,不能直接以 file://打开哦

2021-06-23

SwitchyOmega_Chromium.zip

SwitchyOmega,解压即用,直接添加到chrome即可配置使用,不用费劲吧啦的去找crx为什么安装不了,压缩包为什么找不到清单等问题啦

2020-09-16

echarts 3Dearth.rar

利用echarts完成的3D地球数据可视化效果,有涟漪扩散的效果和 高度自定制的tootip提示框

2019-06-24

空空如也

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

TA关注的人

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