
前端
xdhc304
这个作者很懒,什么都没留下…
展开
-
WebAssembly简易demo
Given the root of a binary tree, check whether it is a mirror of itself (i.e., symmetric around its center).Example 1:Input: root = [1,2,2,3,4,4,3]Output: trueExample 2:Input: root = [1,2,2,null,3,null,3]Output: falseConstraints:The number of原创 2021-03-12 19:44:15 · 548 阅读 · 0 评论 -
electron只运行单个实例
在主进程中添加const gotTheLock = app.requestSingleInstanceLock()if (!gotTheLock) { app.quit()} { app.on('second-instance', (event, argv) => { if (process.platform === 'win32') { if (win) { if (win.isMinimized()) { win.restore原创 2021-01-21 15:39:33 · 1088 阅读 · 0 评论 -
JS监听DOM位置移动
const config = { attributes: true, childList: true, subtree: true };const callback = (mutationsList, observer) => { let getBoundingClientRect = this.getBoundingClientRect() console.log('postion', `left: ${getBoundingClientRect.left}`, `bottom:原创 2021-01-21 15:37:31 · 4615 阅读 · 0 评论 -
JS监听DOM元素resize
try { let resizeObserver = new ResizeObserver(entries => { console.log('resize', entries) }) resizeObserver.observe(this)} catch (e) { console.log(e)}原创 2021-01-21 10:19:43 · 1383 阅读 · 0 评论 -
JavaScript判断数组是否包含某元素
find()与findIndex()方法let arr = [1, 2, undefined, '听风是风', 'echo']; //利用indexOf查找下标的特性let result = arr.find(ele => ele === '听风是风')//听风之风if (result) { //do something...};find方法是比较推荐的做法,find方法会找到第一个符合条件的数组元素,并返回它,如果没找到则返回undefined。需要注意的是,只要find找.原创 2021-01-20 15:03:13 · 731 阅读 · 0 评论 -
webgl里的变量
attribute: 用在顶点着色器中接收顶点相关信息uniform: 可以同时在顶点着色器和片元着色器中使用,接收无顶点无关的数据varying 同时在顶点着色器和片元着色器中定义,用于在两者之间传递数据...原创 2021-01-20 10:40:19 · 196 阅读 · 0 评论 -
js实现复制功能
var oInput = document.getElementById('input');oInput.select(); // 选择对象document.execCommand("Copy"); // 执行浏览器复制命令message.success("复制成功", 1);var dummy = document.createElement('input');text = window.location.href;document.body.appendChild(dummy);dumm原创 2020-06-20 16:30:34 · 329 阅读 · 0 评论 -
img图片过长自动截取
object-fit: cover;max-height: 298px;原创 2020-03-05 10:12:10 · 2952 阅读 · 0 评论 -
在 64 位系统下安装 32 位 electron
直接 npm 安装npm install --arch=ia32 electron@1.4.14配置 .npmrcarch=ia32registry=https://registry.npm.taobao.org配置 package.json{ "config": { "arch": "ia32", "registry": "https://regi...原创 2020-02-27 15:36:05 · 1684 阅读 · 0 评论 -
Promise实现原理
// 判断变量否为function const isFunction = variable => typeof variable === 'function' // 定义Promise的三种状态常量 const PENDING = 'PENDING' const FULFILLED = 'FULFILLED' const REJECTED = 'REJECTED'...原创 2020-01-19 10:28:52 · 189 阅读 · 0 评论 -
小程序audio组件在iOS不能播放
<audio poster="{{postData.music.coverImg}}" name="{{postData.music.title}}" author="{{postData.author}}" src="{{postData.music.url}}" id="myAudi原创 2019-03-05 23:21:15 · 4829 阅读 · 1 评论 -
nrm
安装nrm,此模块主要的功能可以切换镜像源地址npm install -g nrm查询目前可用镜像源地址nrm ls切换镜像源nrm use taobao原创 2019-05-20 13:35:48 · 1406 阅读 · 0 评论 -
flutter中的async、await和Future
首先看一个案例://HTTP的get请求返回值为Future<String>类型,即其返回值未来是一个String类型的值getData() async { //async关键字声明该函数内部有代码需要延迟执行 return await http.get(Uri.encodeFull(url), headers: {"Accept": "application/json"}...转载 2019-05-15 11:32:29 · 2584 阅读 · 0 评论 -
jsdoc通过注解生成HTML API文档
1.首先我这里推荐一个注释的快捷键工具,您可以在VS Code 中安装它。插件名称:koroFileHeader这个插件安装好后就可以使用了,鼠标点击js方法然后按 Ctrl+Alt+T ,就会自动生成注释。2.接下来我们安装jsdoc,您可以打开VS Code 的终端输入命令:npm install jsdoc -g3.jsdoc注释的关键字及说明,可以参考。(1)对文件进行描述 ...转载 2019-07-09 17:55:36 · 1374 阅读 · 0 评论 -
vscode快速生成React代码块
1、在vscode中安装这个插件2、编写代码rcc 就可以生成有状态的组件代码块3、编写代码rfc 就可以生成无状态的组件代码块原创 2019-08-19 09:37:15 · 2521 阅读 · 0 评论 -
vscode快速生成vue模板
1、安装vscode2、安装Vetur插件3、新建代码片段:File -> Preferences -> Extensions -> vue4、粘贴自己的vue模板:{ "Print to console": { "prefix": "vue", "body": [ "<style lang='scss' scoped>", "...原创 2019-08-19 09:56:32 · 2746 阅读 · 1 评论 -
react动态渲染HTML
//在render里获取内容const html = { __html: content }<div className = "html-wrap" dangerouslySetInnerHTML = { html }></div>原创 2019-08-19 10:03:50 · 1881 阅读 · 0 评论 -
babel-plugin-import配置babel按需引入antd模块,编译后报错.bezierEasingMixin()
解决方案:将less版本降到3.0以下,比如安装 2.7.3版本原创 2019-08-19 19:41:30 · 474 阅读 · 0 评论 -
Vue子组件调用父组件的方法
Vue中子组件调用父组件的方法,这里有三种方法提供参考1、直接在子组件中通过this.$parent.event来调用父组件的方法父组件<template> <div> <child></child> </div></template><script> import child fro...原创 2019-08-21 09:07:29 · 643 阅读 · 0 评论 -
16.9.0版react跨域代理的方法
1、安装http-proxy-middleware$ npm install http-proxy-middleware --save$ # or$ yarn add http-proxy-middleware2、创建一个setupProxy.js文件,在src目录,src/setupProxy.js例如之前的配置"proxy": { "/api": { "target"...原创 2019-08-16 16:42:02 · 626 阅读 · 0 评论 -
vue源码中涉及的flow, ?在参数后面和在冒号有什么区别
可选类型(Maybe Types)可选类型是用于值可选的地方,用法就是在类型前加一个?,例如?string或?number。可选类型可以是null或void。// @flowfunction acceptsMaybeString(value: ?string) { // ...}acceptsMaybeString("bar"); // Works!acceptsMayb...原创 2019-08-22 14:45:17 · 448 阅读 · 0 评论 -
axios设置withCredentials
在axios的参数中写入:withCredentials:truemain.js 配置:Vue.prototype.$axios = axios;axios.defaults.withCredentials = true;原创 2019-08-31 17:44:16 · 23881 阅读 · 2 评论 -
JS驼峰命名和下划线互转
下划线转换驼峰function toHump(name) { return name.replace(/\_(\w)/g, function(all, letter){ return letter.toUpperCase(); });}驼峰转换下划线function toLine(name) { return name.replace(/([A-Z])...原创 2019-09-04 19:12:26 · 816 阅读 · 0 评论 -
JS交换两个变量的值
let num1 = 5, num2 = 6;num1 = [num2, num2 = num1][0];console.log(num1, num2);原创 2019-09-14 21:22:02 · 184 阅读 · 0 评论 -
JS获取HTML插入template的DOM节点
<template id="test"></template>let indexDoc = document;let currentDoc = indexDoc.currentScript.ownerDocument;let temp = currentDoc.getElementById("test");原创 2019-09-21 22:45:42 · 1223 阅读 · 0 评论 -
webpack打包生成zip包的解决办法
npm i webpack-zip-plugin --save-devwebpack.config.jslet WebpackZipPlugin =require('webpack-zip-plugin')new WebpackZipPlugin({ initialFile: './dist', //需要打包的文件夹(一般为dist) endPath: './', //打包到对应原创 2017-11-21 16:40:44 · 10335 阅读 · 0 评论 -
npm升级到最新版本
查看npm当前版本npm -v如果不是最新版本,运行指令npm install -g npm如果想更新到指定版本,运行指令npm -g install npm@6.8.0原创 2019-02-25 21:07:38 · 134642 阅读 · 0 评论 -
npm切换到淘宝镜像源
npm install -g cnpm --registry=http://registry.npm.taobao.org之后所有用到的npm命令都可以使用cnpm来代替进行install,但是cnpm不支持publish命令。原创 2019-02-25 21:04:21 · 1517 阅读 · 0 评论 -
js实现快速排序
var quickSort = function(arr) { if (arr.length <= 1) {//如果数组长度小于等于1无需判断直接返回即可 return arr; } var pivotIndex = Math.floor(arr.length / 2);//取基准点 var pivot = arr.splice(pivotIndex,...原创 2019-02-11 15:17:48 · 2254 阅读 · 2 评论 -
JavaScript金额转大写
function convertCurrency(money) { //汉字的数字 var cnNums = new Array('零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖'); //基本单位 var cnIntRadice = new Array('', '拾', '佰', '仟'); //对应整数部分扩展原创 2017-12-18 15:02:49 · 1342 阅读 · 0 评论 -
JavaScript金额千分位格式化
1、正数,可保留规定位数小数:function fmoney(s, n) { n = n > 0 && n <= 20 ? n : 2; s = parseFloat((s + "").replace(/[^\d\.-]/g, "")).toFixed(n) + ""; //转换成字符串,过滤非数字、.号和负号 var l = s.split(".")[0].split(原创 2017-12-18 15:01:18 · 1088 阅读 · 0 评论 -
Vue2实时监听表单变化的方法
<template> <section> <el-dialog :title="formTitle" :visible.sync="dialogFormVisible" :before-close="cancel"> <el-form :model="form" :rules="rules" ref="form"> </el-f原创 2017-12-15 10:41:44 · 13642 阅读 · 1 评论 -
20 个 CSS 高级技巧汇总
http://mp.weixin.qq.com/s/MavtDznPVECblDUTq_W-Rg转载 2017-11-27 15:40:59 · 228 阅读 · 0 评论 -
移动端开发的兼容问题
1、ios下input设置type=button属性disabled设置true,会出现样式文字和背景异常问题,使用opacity=1来解决2、一些情况下对非可点击元素如(label,span)监听click事件,ios下不会触发,css增加cursor:pointer就搞定了3、1px边框问题使用 xx:before{ content:”; position: absolute; top:原创 2017-11-26 16:13:10 · 330 阅读 · 0 评论 -
localStorage
一、什么是localStorage、sessionStorage 在HTML5中,新加入了一个localStorage特性,这个特性主要是用来作为本地存储来使用的,解决了cookie存储空间不足的问题(cookie中每条cookie的存储空间为4k),localStorage中一般浏览器支持的是5M大小,这个在不同的浏览器中localStorage会有所不同。二、localStorage的优势原创 2017-12-14 09:51:11 · 389 阅读 · 0 评论 -
Vue.js源码学习
Vue.js 源码学习笔记:http://jiongks.name/blog/vue-code-review/转载 2017-07-23 16:05:37 · 431 阅读 · 0 评论 -
如何解决跨域问题?
1、JSONP:json+padding(内填充),顾名思义,就是把JSON填充到一个盒子里原理是:动态插入script标签,通过script标签引入一个js文件,这个js文件载入成功后会执行我们在url参数中指定的函数,并且会把我们需要的json数据作为参数传入。由于同源策略的限制,XmlHttpRequest只允许请求当前源(域名、协议、端口)的资源,为了实现跨域请求,可以通过scri原创 2017-07-21 16:21:19 · 430 阅读 · 0 评论 -
浮动和清除浮动
浮动的框可以向左或向右移动,直到他的外边缘碰到包含框或另一个浮动框的边框为止。由于浮动框不在文档的普通流中,所以文档的普通流的块框表现得就像浮动框不存在一样。浮动的块框会漂浮在文档普通流的块框上。浮动元素引起的问题:(1)父元素的高度无法被撑开,影响与父元素同级的元素。(2)与浮动元素同级的非浮动元素(内联元素)会跟随其后。(3)若非第一个元素浮动,则该元素之前的元素也需要原创 2017-07-21 16:39:31 · 281 阅读 · 0 评论 -
常见web安全及防护原理
sql注入原理就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。总的来说有以下几点:1.永远不要信任用户的输入,要对用户的输入进行校验,可以通过正则表达式,或限制长度,对单引号和双"-"进行转换等。2.永远不要使用动态拼装SQL,可以使用参数化的SQL或者直接使用存储过程进行数据查询存取。3.永远不要使用管理员权限的数原创 2017-07-21 17:21:47 · 1210 阅读 · 0 评论 -
TCP和UDP
TCP和UDP的区别TCP(Transmission Control Protocol,传输控制协议)是基于连接的协议,也就是说,在正式收发数据前,必须和对方建立可靠的连接。一个TCP连接必须要经过三次“对话”才能建立起来。UDP(User Data Protocol,用户数据报协议)是与TCP相对应的协议。它是面向非连接的协议,它不与对方建立连接,而是直接就把数据包发送过去。UDP适用于原创 2017-07-21 17:18:59 · 301 阅读 · 0 评论