- 博客(112)
- 收藏
- 关注
原创 java学习之配置环境变量
下载JDK点击下载备注:JDK中已经内嵌了JRE,不需要再单独下载JRE打开计算机的环境变量在系统变量里面新增key:JAVA_HOME,值为jdk的安装目录在系统变量的Path里面新增:%JAVA_HOME%\bin;在cmd中输入java,如果没有提示java不是内部命令也不是外部命令,则一般情况下则为配置成功。...
2020-02-27 11:14:42
132
原创 js实现复制粘贴
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>copy</title></head><body><div id="box">hello world</div>&l...
2020-02-23 11:44:05
285
原创 nrm-npm的镜像源管理工具
安装npm i nrm -g常用命令nrm ls // 查看所有的源nrm use 源名称 // 切换源nrm add 源名称 源地址 // 添加源nrm del 源名称 // 删除指定源nrm test 源名称 // 测试指定源的响应时间nrm home 源名称 // 跳转到指定源的官网nrm current // 查看当前使用的源名称nrm -V // 查看nrm 版本号...
2020-02-11 21:10:03
272
原创 nvm-node版本管理工具
nvmnvm下载链接点击下载,nvm-setup.zipnvm install node版本号,eg:nvm install v10.15.0nvm uninstall node指定版本号nvm list 查看当前安装的node列表nvm use 指定node版本号nvm install latest 安装最新的node版本号nvm on 开启切换node版本号nvm off ...
2020-02-11 10:34:07
253
原创 node之上传图片
const express = require('express')const router = express.Router()const multer = require('multer')// var upload = multer({ dest: 'uploads/' })var storage = multer.diskStorage({ // 设置上传文件路径 des...
2020-02-05 21:42:18
272
原创 vue-指令、标签、模板、组件、混入
指令v-pre:一些静态的内容不需要编辑添加这个指令可以加快编辑,跳过这个元素和它的子元素的编译过程<span v-pre>{{hello world}}</span>// 显示的就是{{hello world}}v-cloak:解决屏幕闪动,当某些时候网络比较慢的时候,导致Vue来不及渲染,这时候页面就会显示vue的源代码,使得用户体验不友好,这时候在标签上添加这个...
2020-02-05 20:34:18
500
原创 简单版身份验证(基于node)
身份验证为什么需要tokenhttp请求是无状态的session-cookie服务端npm i express-sessionnpm i cookie-parser前端登录成功后,后端把用户相关信息(非敏感信息)放入session中,同时设置过期时间,会自动放入cookie中,返回给前端此后,前端每次请求api接口时,cookie会自动携带给后端const cook...
2020-02-05 12:56:01
474
原创 node爬虫爬取网站图片
// 爬虫const https = require('https')const fs = require('fs')const cheerio = require('cheerio')const url = require('url')const site = 'https://www.xxx.com/'const saveFoldersPath = './images'htt...
2020-01-30 21:28:13
461
原创 node-mailer使用
安装npm i nodemailer"use strict";const nodemailer = require("nodemailer");const transporter = nodemailer.createTransport({ host: "smtp.qq.com", port: 465, secure: true, auth: { user: '2...
2020-01-30 16:06:44
758
原创 node搭建静态资源服务器
const http = require('http')const url = require('url')const fs = require('fs')const path = require('path')const mime = require('mime')// 创建服务器对象const server = http.createServer()server.on('requ...
2020-01-27 14:35:56
279
原创 方便的dva.js
一个轻量级的框架dva = redux + redux-sage + react-router + fetch安装npm i dva-cli -g初始化项目dva new project-name项目目录mock--模拟数据src | assets -- 存放静态资源 | components -- 存放公共组件 | models -- 处理页面的业务逻辑 | routes...
2020-01-05 11:59:07
168
原创 vue的mixin注入
// 引入自mixin.js文件export const GlobalMixin = { data() { return { } }, methods: { deleteItem(title = 'Delete', content = 'Are you sure delete?') { return new Promise((resolve, re...
2019-12-26 20:22:37
584
原创 快应用
背景快应用是一种新的应用形态以往的手机应用主要有两种方式:网页、原生应用。网页无需安装,但是体验不好原生应用需要到商店下载安装,难以一步直达用户,但是体验流畅环境安装npm i -g hap-toolkithap -v 查看版本npm run buildsrc下面的文件不是可以直接执行的执行这个命令之后,会把src下面的对应到build文件夹下面rpk相当于一个zi...
2019-12-14 11:06:52
326
原创 FLow简识
功能flow和ts都是用来做js的类型检查Flow是什么静态类型检查工具能够给JavaScript提供静态类型检查的能力其实就是为JavaScript添加了一个编译的过程通过注释编写flow代码,不影响js代码通过直接在js中书写类型,改变了代码结构,需要通过Babel使用js可能遇到哪些问题js语言特征介绍js是弱类型,动态类型检查的语言弱类型定义变量的时候...
2019-12-10 22:29:36
494
原创 对Google V8的一点理解
背景哪里需要JavaScript,哪里就有v8解析JavaScript的工具函数调用产生闭包任何一个函数都有一个属性prototype,唯一,系统的Object也有每一个函数的实例对象有一个属性__proto__,指向其函数的prototype,然后这个对象有个constructor在指回去函数优先级比var高HTML文档加载顺序创建内存结构V8读取文档(从上到下、从左到下...
2019-12-01 21:53:58
344
原创 前端加载策略
看到一个页面花了哪些时间?html的请求html页面资源的加载,现代浏览器对资源的加载是并行加载的,但是并发的数量有限,ie6非并行页面的渲染-绘制页面加载流程最先加载的是head部分资源加载和dom的绘制是同步进行的资源加载的细节下载html自行解析资源,给资源排队资源之间是并行加载的,不用等待上一个加载完毕在进行一般来说,script和css的加载优先与img资...
2019-11-30 22:59:23
243
原创 get and post
服务器的交互方式都是属于与服务器交互的一种方式还有put,delete,依次是获取、修改、更新、删除get请求参数放在url上url的长度是有限制的,理论上长度是没有限制的,但是浏览器和服务器都做了限制get请求会被浏览器主动cache浏览器回退时无害get请求会产生一个TCP包,会把http的header和data一起传过去,服务端响应200post请求参数存放在r...
2019-10-10 11:07:10
192
原创 函数节流与防抖
函数节流1.短时间内大量触发,只需要第一次触发,后面的不触发,只有大于设定的周期后才会执行第二次function throttle(fn, delay) { var lastTime = 0 return function() { var nowTime = Date.now() if (nowTime - lastTime > delay) { fn &&a...
2019-10-05 23:42:46
93
原创 es6之Symbol
前置知识let 与 var var变量提升 var可以重复赋值,let不行,再次声明已经声明的变量 let有块级作用域基本数据类型string,number,null,undefined,boolean,symbolSymbol独一无二,永远不想等symbol可以转换标识symbol的标识一般放number和string常常可以用在类中存放的私有属性声明symb...
2019-09-30 13:20:46
138
原创 常用的几个es10新特性
flat数组扁平化可以把一个多层嵌套数组的深度(维度)给降下来array.flat(depth) // depth默认深度为1,当传递Infinity时,直接返回一个一维数组flatMaplet arr = [“今天天气不错”, “”, “早上好”]arr.flatMap(s => s.split(’’));// [“今”, “天”, “天”, “气”, “不”, “...
2019-09-29 11:24:16
625
1
原创 JavaScript设计模式系列之单例模式
<!DOCTYPE html><html> <head> <meta charset="utf-8"> <title>单例设计模式</title> </head> <body> <h1>单例设计模式</h1> <ul> <li>...
2019-09-24 11:25:16
118
原创 JavaScript设计模式系列之工厂模式
简单工厂模式<!DOCTYPE html><html> <head> <meta charset="utf-8"> <title></title> </head> <body> <script> // 简单工厂模式 function makeCoffee(d...
2019-09-24 11:24:24
158
原创 认知vue系列1
对MVVM的理解萌芽于WPF,WPF基于Windows的用户界面最早的MVVM框架–KO(knockout),可以和jQuery兼容由三部分组成:model(模型层)、view(视图层)、viewmodel(暴露view层的数据,处理具体的业务逻辑)MVVM优缺点解放双手(数据变化,不需要在频繁的操作dom)view层和model层代码分离,降低了耦合缺点是对bug的排查达不到...
2019-09-23 15:25:39
165
原创 vue组件通信
vue组件通信方式props / $emit$children / $parentrefprovide / injectevent bus$attrs / $listenersVuex使用场景父子组件props / $emitref$children / $parent兄弟组件Vuexevent bus跨级组件Vuexprovide /...
2019-09-23 15:13:54
124
原创 请求之Fetch
交互用的ie不支持,主流浏览器都支持,针对不支持的,使用Fetch Polyfill用到了Promise语法,本身也是异步的fetch是一个函数 fetch(url, { method: 'get', headers: { 'content-type': 'application/json;charset=utf-8' }, body: '...
2019-08-29 11:47:07
199
原创 H5之FileReader
单个文件上传<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-...
2019-08-24 14:28:28
271
原创 es6之Promise
Promise是es6的新特性Promise是一个构造函数new Promise的返回值是一个Promise实例对象Promise可以看作是一个容器,里面存放的是异步任务,该任务的初始状态为Pending,且只能变为以下两种状态的任意一种,即resolved和rejected容器一旦创建就会立即执行callback中的代码.then方法中的第一个回调函数作为前一个返回的promise...
2019-08-22 10:57:12
151
原创 谈谈http协议
http真的很重要缓存验证三次握手https为什么安全什么是长链接http2的信道复用为什么可以提高性能浏览器输入URL后HTTP请求返回的完整过程http的发展历史http/0.9,只有一个命令GET,没有header等描述数据的信息,服务器发送完毕,就关闭tcp连接http/1.0,增加了很多命令,增加status code和header,多字符集支持,多部分发送,权...
2019-07-23 23:00:05
163
原创 常用正则表达式
至少包含一个字母和数字:/^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d]{2,230}$/验证邮箱:/^\w*([\u4e00-\u9fa5!#$%&'+-\./=\^_'\{\?\w]*\w*)?@([\u4e00-\u9fa5._\w]+[\u4e00-\u9fa5-._\w]*)?[\u4e00-\u9fa5._\w]+([\u4e00-\u9fa5-._\w...
2019-07-23 14:22:12
799
原创 前端模块化的发展
模块化是指将一个复杂的系统分解为很多个模块以方便编码命名空间很久以前开发网站要通过命名空间的方式来进行编码命名空间可能会冲突,比如zepto也是放在window.$下无法合理的管理项目的依赖和版本无法控制依赖的加载顺序不适用于大项目commonJS是一种JavaScript模块化规范通过require方法同步加载依赖的其它模块module.exports导出其需要的暴露...
2019-07-21 20:56:55
208
原创 vue的native、stop、self修饰符
native@click.native=’’ // 绑定原生点击事件在vue中给组件绑定事件的时候必须加上native修饰,监听根元素的原生事件用native修饰子组件内部向外部发送事件使用$emitstop<a v-on:click.stop='test'></a> // 阻止事件冒泡prevent<a v-on:submit.preve...
2019-07-19 09:53:23
4993
原创 vue自定义生成随机码
<div @click.stop="refreshCode"> <identify class="code" :contentHeight="42" :identifyCode="identifyCode"></identify></div><template> <div class="s-canvas"> ...
2019-07-17 08:51:23
10252
1
原创 对typescript的认知
介绍微软开发开源js的超集扩展了js的语法浏览器不能直接解析安装npm i -g typescript编译指令tsc hello.ts配置vscode,自动编译ts文件tsc --init,改tsconfig.json的outDir点击菜单 任务-运行任务 点击tsc:监视-tsconfig.json 然后就可以自动生成代码了hbuilder如何配置3. 菜单...
2019-07-16 22:54:22
346
原创 ejs模板
基本格式<%=%>循环遍历<%arr.forEach((item) => {%> <li><%=item%></li><%})%>```转义解析HTML<%-html%>引入外部ejs模块<%include header.ejs%>奇淫技巧使得页面上所有的rende...
2019-07-13 21:19:33
395
原创 react-生命周期
react生命周期函数在某一个时刻组件自动调用执行的函数render函数也是生命周期函数constructor函数在组件一创建的时候执行componentWilMount 组件即将被挂载到页面的时刻,render之前执行componentDidMount 组件以及被挂载到页面shouldComponentUpdate 组件更新之前,要求返回一个boolean类型的返回结果(你的组件...
2019-07-10 18:52:38
102
原创 js-cookie方便快速的操作cookie
js-cookie官方文档安装npm install js-cookie --save引入import Cookies from 'js-cookie'基本操作set// Create a cookie, valid across the entire site:Cookies.set(‘name’, ‘value’);// Create a cookie that ex...
2019-07-10 16:58:09
271
原创 react虚拟DOM&diff算法
进化一1.数据state2.JSX 模板3.数据+模板生成真实DOM显示4.state改变,数据+模板结合生成真实DOM替换原有的DOM缺陷:第二次替换第一次的DOM非常耗性能进化二1.数据state2.JSX 模板3.数据+模板生成真实DOM显示4.state改变5.再次生成真实DOM,但是先不替换6.新旧DOM作对比,找差异7.把差异部分进行替换性能有所提升,...
2019-07-09 09:07:04
153
原创 webpack自动压缩打包文件生成zip包
应用场景我们经常需要在执行npm run build之后把生成的static和index.html打包压缩成一个压缩包发送给后端进行项目部署,每次都需要手动操作太过繁琐,so 有需求就要找方法…安装插件npm i filemanager-webpack-plugin插件配置在build/webpack.base.config.js里加上如下代码const FileManagerWeb...
2019-07-05 11:12:14
5908
1
原创 vue-网站配置favicon
在build下的webpack.dev.conf.js文件下的plugins配置如下代码: new HtmlWebpackPlugin({ filename: 'index.html', template: 'index.html', favicon: 'src/assets/images/favicon.ico', inject: true ...
2019-07-04 16:02:58
160
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅