自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 前端实现分页打印(二)

关于分页计算,分页统计的代码篇

2022-12-16 11:49:30 587 3

原创 前端实现分页打印(一)

实现页面为结算单,也页面由固定头部,订单信息,产品列表,金额汇总,订单明细其中产品列表需要动态计算分压,订单明细由于存在多个子单,订单收费项目可配置化,导致也存在多个分页需要处理

2022-12-16 10:44:44 4973 2

原创 微信h5调试环境搭建

微信h5调试环境搭建VConsole手机网页的前端开发者调试面板, vConsole 传送门安装$ npm install vconsoleor$ yarn add vconsole使用vue react 项目可以直接在入口文件 引入,然后创建实例import VConsole from 'vconsole';const vConsole = new VConsole();// 或者使用 options 选项初始化const vConsole = new VCon

2021-08-07 11:45:03 791

原创 vue配置webpack素自动转为 rem

安装amfe-flexible(用于设置 rem 基准值)yarn add amfe-flexibleor npm i -S amfe-flexible使用amfe-flexible// src/main.js 中引入 amfe-flexibleimport 'amfe-flexible'安装 postcss-pxtorem(postcss-pxtorem是一款 postcss 插件,用于将单位转化为 rem)注意 版本太高会报错,需要安装指定版本npm install postc

2021-07-28 09:06:37 374

原创 vue cli Mock的使用

mock模拟接口,使用默认的devserve 完成,考虑到这边有后台提供的模拟数据,随不需要自己随机生成数据,如果说有需要自己随机生成数据,可以使用[mockjs](Mock.js (mockjs.com))写mock接口在src/目录下新建mock目录,存放所有的mock文件在src/mock/目录下新建home.jshome.js mock 文件内容/** * @desc 处理返回banner 数据 * @param { object } request express 请.

2021-07-21 22:50:30 321

原创 vue cli 生成vue项目

Vue CLI 是一个基于 Vue.js 进行快速开发的完整系统,官网 [vue cli ](介绍 | Vue CLI (vuejs.org))安装vue clinpm install -g @vue/cli-service-global创建项目# 创建项目vue create project name# 选择默认选项 完成安装# 进入项目目录cd project name# 启动项目npm run serve or yarn serve路由配置在scr目录下创建如.

2021-07-21 22:47:22 123

原创 基于qiankunjs的微前端搭建

什么是qiankunqiankun: 一个基于 single-spa 的微前端实现库,旨在帮助大家能更简单、无痛的构建一个生产可用微前端架构系统。孵化自蚂蚁金融科技基于微前端架构的云产品统一接入平台微前端基本架构#mermaid-svg-IHseDMMMqVX3w5Iq .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#merm

2020-12-15 17:03:04 5945 1

原创 什么是微前端

将多个独立的系统,通过统一的入口提供给用户使用的聚合系统 。而开发,测试,上线,都是子系统自行研发,测试 ,上线。微前端的特点代码库更小,可以将系统拆分成多个子系统。独立部署,子系统堵路部署,没有技术栈限制无需重新开发当前项目,可以直接集成微前端的不足开发中需要运行多个子系统才能开发和调试(至少是base系统和业务系统)多个系统之间的约定,已经架构设计性能问题(单页面系统=>ios, 微架构=> Android)生产环境多个系统之间的版本控制(业务流程可能.

2020-12-15 10:33:08 726 2

原创 JS优化之回收机制理解

回忆这几年,经常使用的技术栈从jq,bootstarp,cmd, 到MVVM(vue, react, angular). 我们的js从最开始的几百K到现在动辄几兆,处理对的数据也越来越复杂,随之而来的就是对性能的优化。围绕着优化,肯定要不开内存占用的问题。。。首先如下:科普一下简单的技术概念JS中的栈(stack)栈的特点是**“LIFO,即后进先出(Last in, first out)”**。数据存储时只能从顶部逐个存入,取出时也需从顶部逐个取出。打个比喻,当我们洗盘子得时候,会边洗边摞一起.

2020-12-09 16:22:10 335

原创 设计模式之-组合模式

组合模式-> 又称部分模式将对象和恒树行结构以表示部分-整体的层次结构使用者可以使用统一的方式对待组合对象和叶子对象优点高层模块化调用简单节点自由增加缺点在使用组合模式是,其叶子和树枝的声明都是实现类,而不是接口,违反了依赖倒置使用场景部分,整体场景, 如树形菜单。文件,文件夹。实现虚拟dom案例<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-.

2020-11-27 17:17:02 160

原创 设计模式之策略模式

类的行为或其算法可以在运行时更改。这种类型的设计模式属于行为型模式策略模式中, 创建表示各种策略的对象和一个行为随着策略对象改变而改变的 context 对象。策略对象改变 context 对象的执行算法策略模式的优点算法(功能)可以自由切换避免使用多重条件判断扩展性好策略模式的缺点策略类会增多所有的策略都会暴露在外部代码这里是按照超市支付的角色为模型创建,有四个策略,普通顾客,熟客,会员,老板等,在支付的时候使用不同的策略策略内置实现class Customer.

2020-11-19 16:31:10 86

原创 状态模式

对象类的行为是根据他的状态改变的。这种类型的设计模式称为设计模式我们通常创建各种状态的抽象对象和一个行为随着状态的改变而改变context对象主要作用解决对象行为过于依赖他的状态(属性), 并需要根据不同的状态触发不同的行为使用场景大量的对象状态需要管理的时候,通过对具体状态的抽象,封装,实现解耦核心实现思想创建不同的状态类,进行上下文的状态切换,已经该状态下的行为创建上下文对象,更具不同的状态调用对应的 状态类状态模式的优点:封装了转.

2020-11-19 16:16:21 96

原创 设计模式之外观模式

外观模式(Facade Pattern)又叫门面模式,定义一个将子系统的一组接口集成在一起的高层接口,以提供一个一致的外观外观模式让外界减少与子系统内多个模块的直接交互,从而减少耦合,让外界可以更轻松地使用子系统外观模式的组成门面角色:外观模式的核心。它被客户角色调用,它熟悉子系统的功能。内部根据客户角色的需求预定了几种功能的组合子系统角色:实现了子系统的功能。它对客户角色和Facade是未知的客户角色:通过调用Facede来完成要实现的功能代码实现// 定义求和方法class Su.

2020-11-11 21:26:41 133

原创 GIT合并指定commit到当前分支

最近因为偷懒,没有重新拉建立分支,导致在发布测试的时候有问题,多个任务的代码揉到了一起,而我这次是希望发布部分代码. 所以就有了下边的命令git cherry-pick基本用法`git cherry-pick` 的作用,就是 将指定的提交合并到其他分支$ git cherry-pick <commit hash># 将指定的提交,合并到当前分支,并且会产生一个新的提交及记录<commit hash># 将提交 xxx 应用到 dev分支$ git checkout.

2020-11-06 11:27:50 1107

原创 video 播放视频被x5内核浏览器劫持时的处理记录

因为业务关系,最近一直做微信相关的东西。一直被教育,过了一段时间,我已经我我已经成成长了,成长到足够可以处理日常事务,可是,可是我还是太年轻了。。。查询资料要做视频播放发现视频在播放的时候调用Android原生的视频播放器导致界面布局失效,网页无法继续糙操作。。。。然后我找了好久 好久。。。网上各种解决方案, 。。。无效到目前为止 之确定了只有x5内核会有此问题此时已过去了半天的时间,翻遍了百度。google,没有办法,只有放大招了,查看官方文档腾讯x5官方文档https://x5..

2020-09-25 17:11:59 3497 1

原创 微信小程序h5页面分享设置

前言(废话): 最近开发新项目,因为公司希望能在开发完h5后顺便吧微信小程序也上了,但是人力有限,只能做到h5,开发小程序压根做不到,只能投机了, 我真是个机灵鬼。。。然后我就看API,咦,贼拉简单,一。使用web-view标签嵌入网页,后台配置合法域名,二,使用postmessage通信,然后保存地址就好了。。。代码如下:<template> <div class="index"> <web-view :src="path" @message="messa.

2020-07-02 21:26:41 4290

原创 微信支付又一次成功的教我做人

时间过得飞快,转眼间从业前端已经有些年头了,见了太多的场景,意想不到的的错误,以为自己足够成熟和冷静的时候,支付再一次教了我一回,怎么做一个人。。。事情的经过大致是这样子的,公司有一个h5新项目,然后再开发的时候需要对接支付。经过调研,后来只打算上微信支付和支付宝支付,在这里首先对支付宝支付api的开发者表示致敬,真心好用。然后再说会微信。。。。有h5支付,公众号支付,还有小程序支付。。。。在这里奉劝大家,如果是真的设计多方登录,支付的时候,还是使用微信开放平台把,毕竟找个属于少生优生,幸福一生的选择,.

2020-06-10 09:40:57 350

原创 vue 图片上传,图片预览

因为项目是vue+vant,这里图片预览直接使用vant的组件,不做多余的封装html 结构主要选择图片按钮,图片预览区, 选择图片的input<div class="img-upload"> <ul class="preview-list" > <li class="img-item" v-for="...

2020-04-16 19:16:57 773 3

原创 es6 之 new Function

恩么么,有一种这样的场景,随着开发的场景越来越多,我们很多时候需要动态几算,以前只要把函数封装好就可以用了,有没有考虑过讲方法也动态封装呢。。。怎么说呢,大神就是大神,很多我还没用到的东西别人已经实现了,最近刚好用到…new Function语法let func = new Function ([arg1, arg2, ...argN], functionBody);// 上边的...

2019-12-16 11:50:20 1118

原创 git 合并指定文件到当前分支

前言,最近接到领导通知,说要将上一周完成的功能代码合并到另外一个分支上。然后我就切换目标分支,发现代码的提交记录已经滞后了很多,又不能将代码全部合并过来,就只能研究如何将部分代码合并过来。话不多说,撸起袖子加油干…操作git checkout 目标分支git checkout --patch 文件所在分支 文件物理路径/文件名然后会出现提示Apply this hunk to...

2019-11-26 08:20:17 1322

原创 react-ssr之node代理

src/server/index.js 中配置代理主要借用 httpProxy 插件实现const Koa = require('koa2')const _ = require('koa-route');const httpProxy = require('http-proxy-middleware');import render from './render'const k2c ...

2019-06-27 11:41:47 872

原创 配合使用redux-thunk

假设需求,我们值home页面需要加载用户列表首先修改服务器, 这里主要是给几个假数据,在请求接口的时候使用// 1.在src下新建api目录// 2. 在src/api目录下 新建server.js, 内容如下const express = require('express')const cors = require('cors')const app = express()//...

2019-06-27 11:40:43 1796

原创 react-ssr之redux使用

作为全家桶之一,必须要有啊。必须的必啊安装redux(这个我就不说了,自己去npm找)仓库的基本配置在src目录下新增store目录在store目录下创建index.js, actions-types.js actions 目录, reducers目录src/store/index.jsimport { createStore, applyMiddleware } from...

2019-06-09 07:49:21 742

原创 react-ssr之路由配置

凡事都是现有1,再有2,然后有100…我们处理好了事件绑定,那肯定还是需要路由配置的,话不多说,撸起来新增路由文件在src目录下新建router.js/*** @desc 这里是最基本的路由配置* 只有两个页面,一个home,一个couter*/import React, {Component, Fragment} from 'react'import { Route }...

2019-06-09 07:33:03 2931

原创 react-ssr之事件绑定

没有处理事件的页面是不完整…这里使用一个计数器的demo来展示如何实现事件绑定….主要需要两个步骤,抽离配置,页面引入我们写好的计数器脚本抽离webpack配置文件,单独打包server端和client端webpack.base.js 基础配置module.exports = { mode: 'development', target: 'web', mo...

2019-06-09 07:15:19 1345

原创 react服务端渲染之环境搭建

react服务端渲染说明近期一直想看看react项目ssr到底是怎么做的,最近一直在学习,研究如何从零到一的实现react的服务端渲染,并将整个过程的代码整理出来,作为参考react项目重构项目中使用了koa和express,主要是学习,如果项目中可以使用koa或者express初始化一个项目这里主要是实现基本的模拟代码,项目中我们通常会在原来的项目基础上做处理新建一个...

2019-05-31 21:29:56 392

原创 设计模式之装饰器模式

装饰器模式的定义装饰器模式(decorator pattern):允许向一个先有的对象增添新的功能,同时又不改变其解构。装饰器模式的优点装饰器模式与继承关系的目的都是要扩展对象的功能,但是装饰器模式可以提供比继承更多的灵活性。装饰器模式允许系统动态决定贴上一个需要的装饰,或者除掉一个不需要的装饰。继承关系是不同,继承关系是静态的,它在系统运行前就决定了通过使用不同的具体装饰器以...

2019-05-03 12:35:18 1776

原创 设计模式之适配器模式

适配器的定义将一个类的借口转换为用户希望的另一个接口。适配器模式,让那些接口不兼容的类的可以一起工作适配器模式别名: 包装模式, 它即可以作为类解构模式,也可以使用对象解构模式。在适配器模式定义中所提及的接口是指广义的接口,它可以表示一个方法或者方法的集合。适配器模式的优点将目标接口和适配接口解耦,通过引用一个适配器接口来重用现有的接口,无需修改原有接口增加了类的透明性合复用性,...

2019-05-03 12:34:04 159

原创 设计模式之单例模式

单例对象的类只能允许一个实例存在。思路有一个引用类对象这个对象实例永远只有一个实现的基本步骤:将构造函数定义为私有函数,这样其他处的代码就无法通过调用该类的构造方法来实例化该类的对象,只有通过该类提供的静态方法来得到该类的唯一实例在该类内提供一个静态方法,当我们调用这个方法时,如果类持有的引用不为空就返回这个引用,如果类保持的引用为空就创建该类的实例并将实例的引用赋予该类保持的...

2019-04-12 10:08:52 114 1

原创 设计模式之工厂模式

简单工厂模式简单工程模式是由一个工厂对象决定创建出哪一类型的类的实例解决的问题: 直接使用new 创建对象耦合严重,必须知道对方存在,相互依赖,使用简单工厂模式,隐藏实现,方便使用,减少耦合简单示例场景: 在很久很久以前,没有工厂,只有大师傅,我们做个工具什么的都要找他。这个时候你首先需要先知道整个人在哪来,然后找他给你做你想要的东西,但是呢,价格,工期什么的都需要你们详谈。后...

2019-04-08 10:34:19 159 2

原创 设计原则

做人是要有原则的,做事怎怎么能没有原则呢做设计… 你总要有点中心思想吧什么是设计大家都是成年人了,做事做事要三思而后行,记得曾经听别人说过,成年的世界没有对错,只有利弊,我们通过自己所学的只是对某种事物的规划就是设计了(这是我自己瞎说的,看看就好了)按照哪一种思路或者标准实现功能功能相同,可以有不同的设计方式如果需求不断变化,设计的作用才能体现出来SOLID五大设计原则...

2019-03-31 22:35:35 136

原创 面向对象学习

什么是面向对象把客观对象抽象成属性数据和对数据的相关操作,把内部细节和不相关的信息隐藏起来把同意类型的客观对象的属性和操作绑定在一起,封装成类面向对象分析 OOA面向对象设计 OOD面向对象编程 OOP概念类,对象(实例)父类是公共的定义类class Animal{ constructor (name) { this.name = name ...

2019-03-15 17:50:10 200

原创 typescript简单上手

typescript简介Typescript 是由微软开发的一款开源的编程语言Typescript 是JavaScript的超集,遵循最新的es5,es6规范。Typescript 扩展了JavaScript语法Typescript 更像后端java, c#这样的面向对象的语言,可以让js开发大型企业应用安装TScriptnpm i typescript -g使用新建1.t...

2019-02-16 10:53:05 576

原创 SQL学习之函数操作2

前言总有些需求是奇葩的,总有偷懒,是通过封装函数实现的,总有些骚操作,都是需要自定义的…SQL自定义函数自定义函数是对MySQL的扩展,使用方式和内置函数相同函数必须要有参数和返回值函数可以接收任意类型的值,也可以接收这些类型的参数函数体由合法的SQL语句组成函数体可以是简单的SELECT语句或INSERT语句,如果是复合结构要用BEGIN…END函数体也可以包含声明,循环和...

2019-01-25 10:30:52 186

原创 SQL学习之函数操作

嗯,函数,函数,函数。。。。字符串函数SQL提供了很多字符串操作方法,下班是一些常见的函数函数名称描述CONCAT字符串连接CONCAT_WS使用指定的分隔符进行字符连接FORMAT数字格式化LOWER转小写字母UPPER转大写字母LEFT返回字符串s开始的最左边n个字符RIGHT返回字符串s开始的最左边n个字符...

2019-01-19 16:59:33 348

原创 SQL学习之基础篇

什么是SQLStructured Query Language: 结构化查询语言为什么要用SQL使用界面操作数据库不方便我们需要通过应用程序去操作数据库SQL的组成DDL(data definition language) 是数据定义语言,主要命令有:CREATE, ALTER, DROP,等,DDL主要是用在定义或改变表(TABLE)的结构,数据类型,表之间的链接和约束等初...

2019-01-18 17:28:03 163

原创 MySQL学习之常用操作

新建数据语法:CREATE DATABSE 数据库名称CREATE DATABSE databse_name;新建数据表语法:CREATE TABLE 表名称(列名称 数据类型, 列名称 数据类型)CREATE TABLE student(id int, name varchar(255), age int);切换数据库语法: USE database_nameUS...

2019-01-16 17:53:14 307

原创 mysql学习之安装配置

数据库的作用存储大量数据,方便检索和访问保持数据信息一致性,完整性共享和安全通过组合分析,产生新的有用的信息数据库基本概念实体只要是在客观世界存在的,可以被描述出来的都是实体数据库(DB)就是数据仓库,可以存放结构化的数据数据库管理系统(DBMS)一种系统软件,提供操作数据库的环境,可以通过数据库管理系统对数据进行CRUD。SQL结构化查...

2019-01-10 17:33:11 182

原创 node打印彩色文字

我们很多时候都觉得自己使用console.log打印的文字看起来太单调,然后看别人写的框架封装的很漂亮。后来发现有一个chalk模块可以实现这个功能,后来就想啊,他们可以,我也可以的,遂百度,整理资料如下chalk 模块简单使用安装npm i chalkchalk使用以下是官方democonst chalk = require('chalk');const log...

2019-01-07 18:18:18 1968

原创 loader运行的总体流程学习

loader配置loader是导出为一个函数的node模块。该函数在loader转换资源的时候调用。给定的函数将调用loader API,并通过this上下文访问。匹配(test)单个 loader匹配(test)单个 loader,你可以简单通过在 rule 对象设置 path.resolve 指向这个本地文件{ test: /\.js$/ use: [ { ...

2018-12-29 10:14:32 2255

空空如也

空空如也

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

TA关注的人

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