![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
前端--漂亮大气
勤奋的菜才是我
每天一小点进步,也要与你分享
展开
-
深入理解react中的虚拟DOM、diff算法
转:https://www.cnblogs.com/zhuzhenwei918/p/7271305.html 虚拟DOM和DOM之间的关系是什么呢? Virtual DOM并没有完全实现DOM,即虚拟DOM和真正地DOM是不一样的,Virtual DOM最主要的还是保留了Element之间的层次关系和一些基本属性。因为真实DOM实在是太复杂,一个空的Element都复杂得...转载 2019-05-31 17:01:45 · 552 阅读 · 0 评论 -
js面向对象:继承
1、ES6,直接通过extends来实现:class PrimaryStudent extends Student { constructor(name, grade) { super(name); // 记得用super调用父类的构造方法! this.grade = grade; } myGrade() { aler...原创 2019-03-27 21:16:28 · 104 阅读 · 0 评论 -
node.js的xml和json相互转换-xml2js
首先安装xml2jsnpm install xml2js引入包:const xml2js = require('xml2js');xml转jsonvar xml = "<root>Hello xml2js!</root>"var parseString = require('xml2js').parseString;parseString(xm...原创 2019-03-27 11:15:09 · 4913 阅读 · 3 评论 -
node.js进行压缩文件
1、使用node实现文件及文件夹进行压缩。2、使用node实现zip加密压缩(非对文件加密,是对压缩包加密)。3、使用node实现在不解压zip包的前提下读取其内容。4、使用node对zip包进行伪加密。npm init -y //新建一个文件夹并且初始化node项目npm i -S adm-zip //安装adm-zip包npm i -S archiver //安装archive...转载 2019-03-22 18:19:16 · 20933 阅读 · 0 评论 -
React父组件异步传值问题解决
父组件异步获取数据,在子组件中通过props获取不到最新传递过来的值?解决方案如下:使用 react生命周期中的componentWillReceiveProps:父组件中异步请求数据 data 传向子组件:<UploadLog renderVersion={ this.renderBuildVersion } ...原创 2019-03-04 21:13:00 · 5773 阅读 · 0 评论 -
cordova插件的调用
插件js: var exec = require('cordova/exec'); exports.pay = function(paymentInfo, successCallback, errorCallback) { if(!paymentInfo){ errorCallback && errorCallback("Please enter order...原创 2019-01-15 20:51:02 · 1303 阅读 · 0 评论 -
js中if()中true和false判断
false、undefined、null、0、NaN和''Boolean(false) // falseBoolean(undefined) // falseBoolean(null) // false Boolean(0) // false Boolean(NaN) // false Boolean('') // false布尔类型里只有这6参数个返回false,其它都为tr...原创 2018-12-12 10:05:33 · 8332 阅读 · 0 评论 -
DAY25——批量数据处理之合并同表头不同表体数据
结合上一篇文章,批量数据选择后,还要把选择的数据处理一下传给后台调用签收或者取消签收接口。首先处理需要格式数据:var newData = []; for(var i = 0; i<oldData.length;i++){ var arr ={ "cgeneralhid" : oldData[i].cgeneralhid, "entries" : [{...原创 2018-11-24 11:49:33 · 682 阅读 · 0 评论 -
doT.js渲染列表数据和批量处理数据
今天,做了列表上渲染数据并且支持批量选择。1、引入doT<script src="../js/doT.min.js"></script>2、html,模板、<!--listTemp--> <script type="text/x-dot-template" id="listTemp"> {{ for(va原创 2018-11-20 20:37:46 · 1524 阅读 · 0 评论 -
js数组与字符串的相互转换
一、数组转字符串(join)例子:var a, b,c; a = new Array(a,b,c,d,e); b = a.join('-'); //a-b-c-d-e 使用-拼接数组元素c = a.join(''); //abcde二、字符串转数组(split)例子:var str = 'ab+c+de';var a = str.split('+'); // [a...原创 2018-11-20 17:57:23 · 3209 阅读 · 0 评论 -
DAY15——开发"老人机"APP
收料app主要用户是送料工,送料工的大概是一些年纪较大,甚至还在用老人机的那些人。虽然我不是需求也不是领导,但是感觉在这种现实情况下推行企业数字化(智能工厂)不是那么容易。向前推进,有问题解决问题,程序都是死的,但是人是活的,然后你就该去思考,自己做的真的适合现在的场景吗? 你只是一个开发人员,决定不了这个app做不做,只能去把app里面的字体都加大一码:font-siz...原创 2018-11-14 20:39:06 · 1137 阅读 · 0 评论 -
DAY13——select选择器文本和值的区别
周一综合征,一个字困。双十一剁手啦,还是要多挣钱呀。虽然并不知道自己今后干什么,但却清楚地知道自己现在应该干什么。我已经给自己选择了一条道路,很清晰的,但是自己好像没有开始为这条路做准备,没有丝毫的努力。就像你对这个世界有很多困惑,你的眼界阻碍了你的思考,这个时候不管是读书还是百度搜索答案,都是可以的。不要只知道焦虑的想,还需要强的执行力。了解——思考——调研——计划—...原创 2018-11-12 20:00:49 · 216 阅读 · 0 评论 -
DAY16——获取和设置checkbox的checked属性
input:type=“checkbox” checked属性,选中时为true,为选中时为false。自动登录样式的例子:<div class="clearfix um-block" style=" margin-top: 15px; margin-bottom: 15px"> <label class="fl"> <input type...原创 2018-11-15 15:06:50 · 610 阅读 · 0 评论 -
DAY9——选择组织、二维码扫描和NC开发环境搭建
早上对了一下需求,需求说这样做挺好,然后补充了2点,1、选择组织。2、确认从pda刷卡(太贵)改pda二维码扫描。 选择组织在登录完成后操作,NC登录后会有pk_group和cuserid返回,但是在工厂里面一个人对应多个组织,所以登录后需要选择组织。添加组织选择页面,然后获取车间。选择了普通的select下拉框,样式待修改。 二维码扫描,使用zbar插件(勾...原创 2018-11-08 10:38:30 · 443 阅读 · 0 评论 -
前端基础知识--顶置
目录1.关于Html2.关于CSS3.关于布局4.关于JS基础5.关于JS高级6.关于浏览器7.关于网络协议8.关于ES6语法9.项目能力10.模块化、组件化开发能力11.面向对象的编程思想12.设计模式13.学习能力14.系统编程1.关于Html1、html语义化标签的理解、结构化的理解;能否写出简洁的html结构;SEO优化。...转载 2019-04-02 12:50:21 · 295 阅读 · 0 评论 -
promise、async和await
setTimeout(function(){console.log(3)},0)async function a() { await console.log(1) console.log(2)}async function b() { await a();}b();输出:(宏任务微任务)123async function testS...原创 2019-04-15 23:31:18 · 104 阅读 · 0 评论 -
js传递参数都是值传递
ECMAScript中所有参数传递都是值,不可能通过引用传递参数var obj = '111';function ddd(obj){ obj = '222';} ddd(obj);console.log(obj);输出: 111const obj2 ={a:'111'}; //let obj2 ={a:'111'}; //var obj2 ={a:...原创 2019-04-16 00:46:02 · 241 阅读 · 0 评论 -
对React的setState
官网:https://reactjs.org/docs/react-component.html先看一个例子:constructor(){ this.state={ val:0, }}componentDidMount(){ this.setState({val:this.state.val+1}); console.log(this....原创 2019-05-31 15:42:45 · 187 阅读 · 0 评论 -
react-component-新生命周期
官方文档:https://reactjs.org/docs/react-component.html新增两个static getDerivedStateFromProps 会在初始化和update时触发,用于替换componentWillReceiveProps,可以用来控制 props 更新 state 的过程;它返回一个对象表示新的 state;如果不需要更新,返回 null...原创 2019-05-31 15:02:17 · 250 阅读 · 0 评论 -
原型链并没有那么复杂(图)
先看个例子: var Animal = function(){}; var Dog = function(){}; Animal.name = 'animal'; Dog.prototype = Animal; var tidy = new Dog(); console.log(Dog.name) //undefined console.log(tidy.name)...原创 2019-05-24 08:58:30 · 156 阅读 · 0 评论 -
async,Await原理最暴力解读
async,Await 其实就是promise的封装,使用编译技术自动将async,Await转化为promise,为了更好的理解async,Await是什么?我们使用转换工具来分析async/await转换工具安装$sudonpminstallbabel-plugin-async-to-promises-g$babel--pluginsasync-to-promis...转载 2019-05-18 17:49:20 · 2122 阅读 · 0 评论 -
GET和POST的区别
GET和POST是什么?HTTP协议中的两种发送请求的方法。HTTP是什么?HTTP是基于TCP/IP的关于数据如何在万维网中如何通信的协议。 在我大万维网世界中,TCP就像汽车,我们用TCP来运输数据,它很可靠,从来不会发生丢件少件的现象。但是如果路上跑的全是看起来一模一样的汽车,那这个世界看起来是一团混乱,送急件的汽车可能被前面满载货物的汽车拦堵在路上,整个交通系统一定会瘫痪。为...转载 2019-05-22 21:49:11 · 133 阅读 · 0 评论 -
实现一个数组的map方法
大概手写一下吧。Array.prototype.map( x => x+1)//实现一个map1Array.prototype.map1= function (callback){ let newArr = []; let that = this; for(let i=0;i<that.length;i++){ newArr.push(callba...原创 2019-05-22 21:29:12 · 1268 阅读 · 0 评论 -
webpack 打包过程
Webpackchunk多文件的打包过程如下图异步:详情:https://segmentfault.com/a/1190000019117897原创 2019-05-12 09:20:26 · 187 阅读 · 0 评论 -
js连续赋值 a.x = a = {n: 2}
下面就是这个经典案例:var a = {n: 1};var b = a;a.x = a = {n: 2};console.log(a);console.log(b);console.log(a.x);console.log(b.x);先来看一下普通连续赋值,即:变量赋值的类型是数据类型值 var a=3; var b=a=5; consol...转载 2019-05-25 09:58:28 · 485 阅读 · 0 评论 -
js二叉树反转
如果根节点不为空,左右节点交换,很简单:function invertTree(root) { if (root !== null) { var temp = root.left; root.left = root.right; root.right = temp; invertTree(root.left); invertTree(root....原创 2019-05-25 09:15:33 · 855 阅读 · 0 评论 -
删除数组连续重复的元素
input [1,3,4,4,1,7,7,7]output [1,3,4,1,7] /* * 相邻去重 * */ function remove(arr){ var newArr =[]; newArr = [...arr]; //拷贝数组 //var newArr = JSON.parse(JSON.stringify(arr)); for(...原创 2019-05-19 11:27:52 · 1940 阅读 · 0 评论 -
node同步解压文件(async/await
使用 async/awaitfunction unzipSync(fileName,mbDir) { return new Promise((resolve, reject) => { fs.createReadStream(fileName).pipe(unzip.Extract({ path: mbDir })).on('close', () =>...原创 2019-05-08 12:33:58 · 850 阅读 · 0 评论 -
js二叉树遍历(binaryTree)
前中后序遍历: var tree = { "id": 0, "name": "root", "left": { "id": 1, "name": "Simon", "left": { "id": 3, "name": "Carl", ...原创 2019-04-14 09:19:45 · 203 阅读 · 0 评论 -
node 解压文件夹
文件夹的解压,因为windows不能使用 zip/ unzip 2个命令;然后想着引入node的包。推荐:unzip-stream 安装:npm install unzip-stream 引入:var fs = require("fs-extra"); //或者 fsunzip = require("unzip-stream"); ...原创 2019-04-25 19:55:54 · 1830 阅读 · 0 评论 -
node获取最后一个目录名
引入模块const fs = require('fs-extra');// 文件操作const shell = require('shelljs'); //shellconst path = require('path'); let appname = ''; let pwd = shell.pwd(); //当前目录路径(字符串) let index = pwd.spli...原创 2019-04-13 10:39:09 · 1607 阅读 · 0 评论 -
DAY11——MA与NC调通并部署MA与数据库学习
today is 周六,一大早过来加班。 听了听江西这边的oracle培训,休息时间部署了一下ma,调通啦。 先说一下ma的部署吧,ma2.7以前是通过部署mp包的形式,现在Chrome页面部署mp包不怎么好用啦,3.5的话开发工具直接就可以把包打到 code/webapps/maserver/WEB-INF/lib里面,如果部署服务器就直接将j...原创 2018-11-10 11:43:12 · 368 阅读 · 0 评论 -
DAY8——收料app界面及基本逻辑
到今天也是来赣州出差一个星期啦,开始几天也是自己在探索app怎么去对接nc,基本搞定登录,搞定ma开发环境后,就写页面了。 领导说我过来的主要任务是教会他们开发app、但是现在唯一给我分的一个开发任务很多抽不出身。也不知道给谁要人,这边开发并不多,nc着急上线,还有就是不知道app着不着急,没有人告诉我。 如果让我培训移动平台的话,我的思路是:1...原创 2018-11-07 09:43:59 · 516 阅读 · 0 评论 -
DAY10——NC接口开发流程
以前总是调用NC接口,但是不知道NC接口怎么写,今天就大概了解到了基本的开发流程。三个文件:1、接口类: 接口的定义,java文件。2、接口实现类: 接口的实现类,java文件。3、upm文件:对类的描述。以ic模块为例: 接口类:写在对应模块的public下面 package nc.impl.ic.app.pub;/** * 车间...原创 2018-11-09 16:38:24 · 2467 阅读 · 0 评论 -
前端控件--setInterval设置停止和循环
注册界面点击手机60秒倒计时,需要用到setInterval,使用setInterval需要关闭它。 var count = 60; var timeInterval = setInterval(function() { if (count > 1) { count--; $("#getVerifyCode").html(count + "秒后重新获取");原创 2018-01-28 15:17:11 · 1238 阅读 · 0 评论 -
mobile开发规范--登录注册忘记密码
明天要开始讲代码了,我是第一个。也没有什么紧张的,因为自己对这一块已经非常熟悉了,明天早上在整体过一下吧,然后再完善一下。遗留的有 60秒的倒计时以及html的变化。 命名规范删除无用的资源今天遇到的问题:1、首先,打包特别慢,预览老是手机脱离,浪费很多时间2、jquery没有引入,报错。3、ajax报错,封装了ajax,用封装的。原创 2018-01-26 11:15:29 · 498 阅读 · 0 评论 -
mobile开发规范--原生请求头
actionBar:用于给新页面添加原生导航栏,便于页面跳转时更流畅,原生导航栏样式由anctionBar对象决定。summer.openWin({ id:'otherHome', url:'html/main.html', type: "actionBar", create: false, //设置保留原生header actionBar: { title:原创 2018-02-01 17:07:51 · 267 阅读 · 0 评论 -
前端框架--vue.js数据绑定
vue.js数据绑定有 单向、双向和一次性绑定 一、单向绑定 (一)Mustache 语法,双大括号 {{}}(html 内字符串绑定) {{text}} var app = new Vue({ el: '#app', data: { text: 'hello world!' } });这种双大括号语法原创 2018-01-31 23:06:18 · 450 阅读 · 0 评论 -
mobile开发规范--注册模块react
登录注册,react写的。注册主要是获取验证码,验证码验证,注册密码。模块代码:验证码: return ( <ValidateUser type={'register'} id={'RegisterPwd'}原创 2018-01-23 20:23:42 · 410 阅读 · 0 评论 -
前端数据--ajax的data参数类型
我接触ajax很长时间了,老对手。相信很多刚刚入门的都会入坑,前端传数据后台老是接收不到,或者相反。今天,我也特意来总结一下,ajax取值和传值格式。先看看两个ajax写法第一个、后台接收参数 @RequestParam,传参就是data:data, 这种传参是这样的data: {"orderId":orderId,"commant":commant}data:原创 2018-01-06 17:35:52 · 5627 阅读 · 0 评论