自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(54)
  • 收藏
  • 关注

原创 Vue——打造权限系统

作者自述:在多页面Vue项目中,如何优雅的的进行权限匹配解决痛点: 复杂的身份判断 —— 在日常开发中经常用 || && 来进行身份验证从而处理DOM的显隐已经业务逻辑的交互 添加新身份以往的逻辑全部需要重现处理依赖: 正则表达式 Array.filter 闭包实现思路创建业务字典项(要求按照业务功能级别拼接)创建身份字典项(后期扩展和维护)...

2018-12-14 08:56:10 473

原创 从经典面试题了解async、await、promise

evenloop执行同步代码(属于宏任务,如遇微任务会推到微任务队列)执行所有微任务执行异步代码面试题async function async1() { console.log("async1 start"); await async2(); console.log("async1 end"); return 'async return';}as...

2018-12-10 15:34:29 2253 1

原创 JS深拷贝的几种打开方式

使用数组遍历赋值var arr1 = [1,2,3];var arr2 = [];arr1.forEach(function(value,index){ arr2[index] = value;}) 使用slice方法var arr1 = [1,2,3];var arr2 = arr1.slice(0);使用数组map方法var arr1 = [2,3,4];var...

2018-11-29 17:26:43 253

原创 Render函数在Vue多页面应用中的应用

标签Vue、apiCloud、HTML写在前面背景介绍因一些历史遗留问题,需要维护一款借助apiCloud开发的项目,需要实现公共组件抽离通过此分享你将 了解apiCloud多页面项目中引入Vue开发 如何在浏览器中调试apiCloud项目 借助render函数实现组件的封装和引用 render函数中值得注意的点在apiCloud多页面项目中引入Vue开发新建一个标...

2018-11-14 16:49:36 420

原创 从零实现前端日志上报

前期准备 XAMPP —— PHP环境+数据库可视化操作进入主题建表结构首先需要确定需要上传哪些信息 通过 window.onerror 可以获取 msg, url, line, col, error等错误信息,JS 的错误行号、url错误地址, 通过 window.navigator.userAgent 获取 设备浏览器的信息集合如果你已经安装并配置好XAMPP...

2018-11-05 17:36:11 2707

原创 如何优雅处理vue中的条件渲染

说到条件渲染,有些人会脱口而出v-if、v-show,你是否厌倦了if…else、switch嵌套,是否反感大量出现的||运算符,也许你需要了解一下vue的filters基本操作如果需要根据情况渲染不同数据,在条件允许的前提下,用filters代替v-if<template> <div> {{msg | aisle}} // 实用过滤器...

2018-11-02 14:40:22 2156 1

原创 编写更加简洁的JS代码

Array.includes处理多条件判断includes在IE上不兼容,可以用indexof代替错误示例test (type) { if (type === 'name' || type === 'value' || type === 'list') { console.log(type) }}正确示例test (type) { let ...

2018-10-31 11:16:26 223

原创 记一次PS For Mac破解

资源链接链接:https://pan.baidu.com/s/1vyO535AuPyLLTsEr5LNfhw 密码:uh9s执行步骤下载对应资源开始安装试用版断网解压并运行install文件选择try开始破解打开Application找到Adobe Photoshop CC 2014并进入右键Adobe Photoshop CC 2014选择打开包内容解压Adob...

2018-10-09 17:24:36 532

原创 实现textarea自动撑开

需求设想实现一个具有默认高度,且随着输入内容的增加自动撑开高度的输入框技术支持 visibility: hidden; 隐藏DOM但是仍然占位 contenteditable="true" 为div添加属性可以模拟输入方法div模拟textarea实现HTML:<div class="full-test" contenteditable="true&

2018-09-20 13:24:51 3874

原创 借助webpack手动实现vue项目配置(未完待续)

webpack_for_vueDescription借助webpack手动创建vue项目,以时间轴顺序依次记录每一步操作过程创建package.json文件npm init -y新建index.html、app.js文件index.html<!DOCTYPE html><html lang="en"><head&gt...

2018-09-04 18:36:15 295

原创 flex_从入门到放弃

基本概念main axis 水平的主轴cross axis 垂直的交叉轴main start 主轴的开始位置main end 主轴的结束位置cross start 交叉轴的开始位置cross end 交叉轴的结束位置main size 单个项目占据的主轴空间cros...

2018-08-14 14:47:10 277

原创 前端应该知道的CSS3 选择器

CSS3 选择器* 通配选择器// 将所有margin和padding归零,不建议使用,增加浏览器负担* { ...}// 适用于子选择器 选择#container层中的子元素#container * { ...} IE Firefox Chrome Safari Opera 6+ ✔ ✔ ✔ ✔...

2018-08-09 17:59:13 232

原创 模块化编程中import与require的区别

import与require的区别遵循规范[ ] require 是 AMD规范引入方式[ ] import是es6的一个语法标准,如果要兼容浏览器的话必须转化成es5的语法调用时间[ ] require是运行时调用,所以require理论上可以运用在代码的任何地方[ ] import是编译时调用,所以必须放在文件开头本质[ ] require是赋...

2018-08-07 19:58:14 434

原创 发布自己的NPM包

准备[ ] 注册NPM账号 https://www.npmjs.com/ PS:注册成功后,邮箱会受到一条验证邮件,不要忘记验证邮箱[ ] 准备一个空文件夹 为了方便后期维护,建议同步到GIT,可以在GIT创建一个空项目后Clone到本地[ ] 为自己的NPM包起一个独一无二的名字 可以通过 npm i xxx来测试你的包名是否被占用,如果能...

2018-08-07 15:39:22 375

原创 皮一下很开心——另类注释

有趣的注释别动我代码/** ************************************************************** * * * .=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=...

2018-08-03 17:18:45 624

原创 实现自带加密及过期时间的本地存储

定义base64加密类import { Base64 } from 'js-base64'class BaseData { constructor (props, ...arge) { // 定义加盐项 this.salting = (props && props.baseString) || 'admin-git-use' } encry...

2018-08-01 20:01:39 1002 1

原创 数组去重的几种形式

数组去重ES6 setfunction dedupe(array){ return Array.from(new Set(array));}dedupe([1,1,2,3]) //[1,2,3]let arr = [1,2,3,3];let resultarr = [...new Set(arr)]; console.log(resultarr); //[1,2,...

2018-08-01 16:40:11 331

原创 Js基础——持续更新

四则运算// 只有当加法运算时,其中一方是字符串类型,就会把另一个也转为字符串类型。其他运算只要其中一方是数字,那么另一方就转为数字。console.log(1 + '1') // '11' 加法只要一方是字符串,就会将另一方转化为字符串console.log(+ '1') // 1 + 具有转义的作用,只有+的时候...

2018-07-25 20:15:02 168

原创 使用本地存储

使用cooKieclass COOKIE { setCookie (name, value, time) { if (!name) return if (time) { const exp = new Date() exp.setTime(exp.getTime() + time * 60 * 1000) document.cooki...

2018-07-25 10:33:15 176

原创 Vue_router在项目中的应用

路由分类$router => 路由器$route => 当前路由创建一个项目vue init webpack xxx此时的router配置import Vue from 'vue' // 引入Vueimport Router from 'vue-...

2018-07-23 19:00:38 368

原创 项目开发需要整理的兼容文档

主流浏览器IE、Firefox、Google Chrome、Safari、Opera[ ] IE浏览器 [ ] Trident内核,也是俗称的IE内核[ ] Chrome浏览器 [ ] 统称为Chromium内核或Chrome内核,以前是Webkit内核,现在是Blink内核[ ] Firefox浏览器 [ ] Gecko内核,俗称Firefox内核; [ ] Safar...

2018-07-23 09:42:39 208

原创 Git_配置别名

配置文件当前仓库配置文件.git/config全局用户配置文件.gitconfig配置命令手动修改配置文件[alias] st = status cm = commit co = checkout br = branch ad = add ac = !git add . && git c...

2018-07-20 10:48:06 292

原创 正则表达式(一刷完成)

正则表达式元字符 元字符 作用 . 匹配任意字符除了换行符 [] 匹配方括号内的任意字符。比如 [0-9] 就可以用来匹配任意数字 ^ ^9,这样使用代表匹配以 9 开头。[^9],这样使用代表不匹配方括号内除了 9 的字符 {1, 2} 匹配 1 到 2 位字符 (yck) 只匹配和 yck 相同字符串 ...

2018-07-19 22:07:35 208

原创 前端数据加密与解密

base64加密install cnpm install js-base64 –save-dev封装import { Base64 } from 'js-base64'// 加盐let salting = 'admin-authority'// 加密const encryptString = (name) => { return Base64...

2018-07-18 21:16:43 2968

原创 项目级Vuex构建

基础准备install包npm install vuex --save-dev创建数据包├── index.js // 将数据包导出└── modules // 数据包 ├── counter // 单一页面相关数据 │   ├── act...

2018-07-17 21:56:30 227

原创 简单易用的Vue_i18n

installcnpm install vue-i18n --save-dev创建语言包cn.json:{ "app": { "yes": "是" }}en.json:{ "app": { "yes": "Yes" }}main.js挂载import Vue from 'vu

2018-07-16 22:34:00 191

原创 Angular2_学习笔记

创建项目 ng new xxx创建model ng generate component xxx属性绑定<span> {{readSpan}}</span>模板绑定<input type="text" [value]=&

2018-07-15 23:18:37 328

原创 JS常用数组操作全解析

concat() 方法用于连接两个或多个数组。let arr1 = [1, 3, 4, 5]let arr2 = ['11', '1']let arr3 = [{ a: 1 }, { b: 2 }]let all = arr1.concat(arr2).concat(arr3)console.log(all) // [1, 3, 4, 5, "11", "1", {…}, {…}]...

2018-07-14 22:04:22 238

原创 ES6_promise应用

基础Promisenew Promise ( function (resolve,reject) { resolve(); // 决定做 reject(); // 放弃做 } ).then( function () { // 决定做执行的函数 ...

2018-07-13 18:18:05 158

原创 Vue_proxytable解决跨域请求

关键词借助config文件夹下 index.js文件中的 proxyTable属性proxyTable: { '/apis': { // 测试环境 target: 'http://www.xxx.cn/', // 接口域名 changeOrigin: true, //是否跨域 pathRewrite: { ...

2018-07-12 22:27:41 760

原创 如何处理复杂的多数据来源业务

中心思想把握好数据流向,画好必要的数据流向图约定好数据字段,定义处理字段的函数暴露统一的操控入口把握好数据流向需要展示的数据需要传递的数据初始化的数据初始化状态组件的状态初始化存储数据的容器初始化容错和报错 报错是开发环境的报错,容错是生产环境的容错...

2018-07-12 00:22:40 680

原创 性能优化学习笔记

js、css松散耦合尽量避免直接用js操作样式,改为控制类名element.className = 'edit';解耦应用逻辑和事件处理程序事件处理应该和业务逻辑拆分,如请求后端数据并进行二次加工,就应该拆分为请求数据函数、接受一个数据进行业务逻辑处理的方法使用常量优化性能,提升代码维护性任何多处用到的值,都应该抽取为一个常量所有的URL应该在一个公共的位...

2018-07-10 22:23:14 179

原创 可扩展的自定义table组件

手把手实现自定义table组件封装vue<template> <div class="table-with-label"> <!-- theader --> <div class="table-th"> <ul class="th-title"&am

2018-07-09 22:05:52 809

原创 Vue——组件封装天龙八步

关键词:data/$data 数据依赖props/$props 父组件传值通道slot 分发created Vue生命周期$listeners 静态函数传递$emit 事件传递$on 事件绑定watch ...

2018-07-08 14:55:58 238

原创 Vue——神秘的生命周期

从Vue的生命周期入手是尝试快速理解Vue应用的一条捷径,那么Vue在生命周期中都做了哪些操作呢?话不多说,直接上代码,感兴趣的小伙伴可以跟着敲一敲,希望直接看结论的请自行滑动至末尾。VUE文件<template> <div class="life-cycle" @click="changeMessage"> {{me

2018-07-07 21:04:48 289

原创 数据库建表

数据库用户表: Id Userid Username Classid 1 1 yiyuan 1 2 2 suntao 1 3 3 xiaohe 2班级表: Id Classic Classname 1 1 小一班 2 2 小二班...

2018-07-05 22:19:58 398

原创 ES6 set

它类似于数组,但是成员的值都是唯一的,没有重复的值。Set本身是一个构造函数,用来生成Set数据结构。add(value):添加某个值,返回Set结构本身。delete(value):删除某个值,返回一个布尔值,表示删除是否成功。has( value):返回一个布尔值,表示参数是否为Set成员。clear( ):清除所有成员,没有返回值。Array.from方法可以将Set...

2018-07-04 22:47:34 153

原创 PHP实现简单接口

ajax请求后端接口返回数据是如何实现的呢<?php$name = $email = '';function test_input($data) { if(isset($data) && !empty($data)) { $data = trim($data); $data = stripcslashes($da...

2018-07-02 22:39:33 783

原创 Mac如何通过命令行Mysql操作数据库

连接数据库mysql -u '数据库名' -penter'数据库密码'创建一个名字为NickYang数据库create database NickYang;查看数据库是否创建成功show databases;进入数据库use NickYang;创建表并为表分配一个主键create table yang(id int primary key...

2018-07-01 21:10:09 3226

原创 PHP连接数据库

PDO链接数据库,并选择数据<?php$dbms='mysql'; // 数据库类型$host='127.0.0.1'; // 数据库主机名$dbName='mysql'; // 使用的数据库$user='root'; // 数据库连接用户名$pass='root'...

2018-06-28 22:00:07 165

空空如也

空空如也

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

TA关注的人

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