自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(172)
  • 资源 (1)
  • 收藏
  • 关注

原创 vue h5地图选点

mapSelect.vue内容。loadBMap.js内容。

2022-07-26 21:35:08 523 4

原创 vue3+ts封装echarts

项目中用到echarts,简单的封装可以少写很多代码2、src下新建文件夹 base-ui,存放基础组件3、base-ui下新建echart文件夹4.3、index.ts文件内容如下:hooks下useEchart.ts内容如下4.4、data下china.json文件内容如下5、基于基础组件封装业务组件建立目录结构如上图这里只写饼图例子pie-echart.vue内容如下types下index.ts内容如下page-echarts src下index.ts内容如下...

2022-07-11 11:09:10 390

原创 JS事件循环

JS 引擎是单线程的,直白来说就是一个时间点下 JS 引擎只能去做一件事情,而 Java 这种多线程语言,可以同时做几件事情。JS 做的任务分为同步和异步两种,所谓 “异步”,简单说就是一个任务不是连续完成的,先执行第一段,等做好了准备,再回过头执行第二段,第二段也被叫做回调;同步则是连贯完成的。像读取文件、网络请求这种任务属于异步任务:花费时间很长,但中间的操作不需要 JS 引擎自己完成,它只用等别人准备好了,把数据给他,他再继续执行回调部分。如果没有特殊处理,JS 引擎在执行异步任务时,应该是存在等待的

2022-07-08 10:52:33 7038 2

原创 git忽略文件无效

实际项目中,总是会用到.gitignore文件,该文件表示在项目中的某些文件不需要使用git来管理,写入.gitignore中的文件名会自动被git所忽略。已提交的项目要新增加一个忽略文件,发现无效,你还需要这样处理如果你要忽略的是一个目录或文件夹,则需要加-r参数:执行完以上步骤 正常提交就会发现忽略的文件不会再被提交了...

2022-07-01 16:59:12 471

原创 js 从原型链到继承

在面向对象编程中,继承是非常实用也非常核心的功能,这一切都基于面向类语言中的类。然而,javascript和面向类的语言不同,它没有类作为蓝图,javascript中只有对象,但抽象继承思想又是如此重要,于是聪明绝顶的javascript开发者们就利用javascript原型链的特性实现了和类继承功能一样的继承方式。要想弄清楚原型链,我们得先把原型搞清楚,原型可以理解为是一种设计模式。每个函数都会创建一个prototype属性,这个属性是一个对象,包含应该由特定引用类型的实例共享的属性和方法。实际上,这个对

2022-06-29 18:37:36 103

原创 创建一个自己的跨域代理服务器

项目无需重启,就可以实现跨域代理新建一个文件夹 lightweight-proxy2.安装 http-proxy-middleware 中间件在 package.json 中的 scripts 下新建一个名为 dev 的脚本,内容为:node src/index.mjs以上代码的关键就在注释中着重强调的区域,为路由 ‘/’ 下的所有请求指定使用一个中间件,代理到 ‘https://juejin.cn/’ 地址上去。因此,当你在浏览器中输入 http://localhost:3000 时,你

2022-06-23 09:30:08 3200

原创 element-UI的 Cascader 级联选择器 动态加载数据及回显

要回显,那么第一级要有数据,选中的第二级,第三级也要对应上比如省市区第一级所有省需要有,第二级,选择的省下的所有市,第三级,选择的所有的市下的区县,回显数据格式注意好,不对是回显不了的获取到所有省,判断要回显的省的id和当前省的id一样的,用这个省的id请求这个省的所有市,循环所有市,判断要回显的市的id,然后拿市的id请求所有区,最后给options赋值我这里是文字,存的时候就是文字,所以需要这样,如果是id,那就简单了,直接拿对应的id请求就行,就是组装好和写死的数据一样的格式就行...

2022-06-20 10:02:20 4354 2

原创 vue3实现echarts饼图自定义展示

效果:首先安装 echarts在需要的页面使用

2022-06-17 13:59:56 2038

原创 js正则-梳理

构造函数:RegExp 对象表示正则表达式的一个实例:这两种方法的一大区别是对象的构造函数允许传递带引号的表达式,通过这种方式就可以动态创建正则表达式。通过这两种方法创建出来的 Regex 对象都具有相同的方法和属性:二、模式匹配1. 字符集合如果我们想匹配 bat、cat 和 fat 这种类型的字符串该怎么办?可以通过使用字符集合来做到这一点,用 [] 表示,它会匹配包含的任意一个字符。这里就可以使用/[bcf]at/ig:如果我们想要在字符串中匹配所有以 at 结尾的单词,最直接的方式是使

2022-06-15 19:07:49 1111

原创 vue3+ts+vant移动端H5项目搭建

vue3+ts+vant移动端适配项目搭建

2022-06-14 14:15:24 1893 6

原创 10个css小技巧

代码二、透明图片阴影效果代码三、自定义 Cursor代码四、attr() 展示 tooltip代码五、核算清单代码六、_使用:is和:where添加元素样式代码七、手风琴效果代码八、侧边栏hover效果代码九、使用 first-letter 实现首字母大写代码十、使用before添加按钮的图标代码...

2022-06-14 10:48:57 171

原创 前端面试题汇总

20.作用域链是什么?要知道什么是作用域链,就要先知道什么是作用域。作用域就是在一定的空间里可以对数据进行读写操作,这个空间就是数据的作用域。 var a = "xiaoxujs"; function fun1(){ function fun2(){ console.log(a) } }作用域链就是 当fun2调用a的时候,就会先在函数fun2中寻找,找不到就会去fun1中寻找,再找不到就会去全局里面

2022-05-26 08:59:48 174

原创 vue源码解析-实现

一、真实DOM渲染<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>D

2022-05-24 09:18:06 1478

原创 axios-TypeScript封装

支持多个实例(根请求路径不同时可用)支持实例拦截支持全局拦截目录结构service下request下 config.ts内容// 1.方式一: 手动的切换不同的环境(不推荐)// const BASE_URL = 'http://baidu.org/dev'// const BASE_NAME = 'cy'// const BASE_URL = 'http://baidu.org/prod'// const BASE_NAME = 'kobe'// const BASE_U.

2022-05-20 16:34:19 371

原创 husky commitlint配置-坑

git commit提交需要规范且,不规范进行提示安装npm install --save-dev @commitlint/{cli,config-conventional}根目录创建 commitlint.config.js 文件 配置参考/** * feat:新功能更新 * style:改变代码格式,如删除空行、格式化代码、去除不必要的分号等等,不影响代码功能逻辑的操作 * fix:修补某功能的bug * refactor:代码重构时使用,不是功能更新也不是 bug 修复的更改 *

2022-04-01 17:09:19 1036

原创 基于token实现用户无感刷新的方案

import axios from axios // 是否正在刷新的标记let isRefreshing = false//重试队列let requests = []service.interceptors.response.use( response => { //约定code 409 token 过期 if (response.data.code === 409) { if (!isRefreshing) { isRefreshing =.

2022-03-25 14:05:30 171

原创 实现自己的cli-用到的插件

构建自己的cli

2022-03-25 14:02:19 549

原创 PHP-laravel框架一3

一、响应【重点】在laravel中,响应正常情况下有2个类型:常规的直接响应,另外一个是ajax的响应。其中展示视图以及直接响应字符串都属于常规的响应。例如:常规响应展示视图:return view(‘welcome’);直接返回某个字符串:return ‘hello world’;提示:在laravel框架中,不允许响应布尔值。1、ajax请求的响应语法:return response() -> json(需要json输出的数据); //数据是数组格式,对象也可以案例:创建一

2022-03-09 13:57:03 1083

原创 PHP-laravel框架一2

一、模型操作(AR模式)【理解】Laravel 自带的 Eloquent ORM 提供了一个美观、简单的与数据库打交道的 ActiveRecord 实现,每张数据表都对应一个与该表进行交互的“Model模型”,模型允许你在表中进行数据查询,以及插入、更新、删除等操作。1、定义模型(1)定义位置定义模型的位置,默认是在app目录下面:(2)命名规则本身laravel对模型的命名没有严格的要求,一般采用 表名(首字母大写).php比如:Member.php User.php Goods.

2022-02-23 14:08:30 884

原创 PHP-laravel框架一1

2022-02-21 15:50:44 8906

原创 LAMP编程之Linux-3

一、用户与用户组(重点)Linux系统是一个多用户多任务的操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。用户的账号一方面可以帮助系统管理员对使用系统的用户进行跟踪,并控制他们对系统资源的访问;另一方面也可以帮助用户组织文件,并为用户提供安全性保护。每个用户账号都拥有一个唯一的用户名和各自的密码。用户在登录时键入正确的用户名和密码后,就能够进入系统和自己的主目录。要想实现用户账号的管理,要完成的工作主要有如下几个方面:用户账号的添加、删除

2022-02-13 14:24:24 119

原创 LAMP编程之Linux-2

一、进阶指令1、du指令作用:du表示directory used,显示出目录所占的磁盘空间大小的情况。语法:#du -sh 目录路径选项说明:-s:表示sumary,汇总统计-h:表示以较高可读性的形式显示案例:使用du -sh指令统计出“/etc”的大小情况2、df指令作用:disk free,查看磁盘的剩余空间的情况。语法:#df -h选项说明:-h:表示以较高可读性单位进行查看。3、free指令作用:查看内存的使用情况语法:#free -m选项含义:-m:表示以

2022-02-13 08:21:55 385

原创 LAMP编程之Linux-1

LAMP: Linux Apache MySQL PHPLNMP: Linux Nginx MySQL PHPWAMP: Windows Apache MySQL PHPLinux是一个操作系统。一、Linux介绍1、常见的操作系统windows它是微软公司开发的一款桌面操作系统(闭源系统)。版本有dos、win98、win NT、win XP、win7、win vista、win8、win10、win11。服务器操作系统:win server 2003、win server2008、win

2022-01-23 15:36:56 206

原创 PHP-电商项目-8

es

2022-01-13 14:20:05 217

原创 PHP-电商项目-7

聚合支付解决方案1.解决方案介绍聚合支付,是融合了多方支付通道的平台,相对于支付宝、微信等第三方支付平台而言,聚合支付属于在第三方支付平台基础上,进行了技术融合的第四方平台。本解决方案,是基于PC网站,集成聚合支付中的扫码支付方式,实现支付宝、微信同码的一种基础方案。聚合支付原理图:2.开通聚合支付服务很多平台都提供了聚合支付服务,以下使用ping++聚合支付。2.1 注册账号访问 Ping++官网,注册账号并登录。提交注册申请后,请前往注册邮箱,在邮件中点击注册链接,创建密码后进入管理

2022-01-12 16:05:26 511

原创 PHP-电商项目-6

一、结算页面1、判断登录整合模板(Order控制器create方法 getOrderInfo.html -> create.html)创建Order控制器,继承Base控制器结算页需要登录才能访问,修改order控制器create方法,判断登录,并设置返回的url修改Login控制器dologin方法,登录成功之后,先获取返回的url修改Login控制器qqcallback方法,登录成功之后,先获取返回的url、从购物车跳转结算页购物车列表页view/cart/index.

2022-01-12 14:22:47 466

原创 js常考手写面试题

一、promise1、实现promise.allfunction PromiseAll(promises){ return new Promise((resolve.reject)=>{ if(!Array.isArray(promise)){ throw new TypeError("promise must be an array") } let result = [] let count = 0 promises.forEach((promise,index)=

2021-12-31 14:58:15 633

原创 vuese 的使用

1、全局安装yarn前提安装了node,jsnpm install -g yarn查看版本:yarn --version2、全局安装vuese/cliyarn global add @vuese/cli || npm i -g @vuese/cli3、快速开始假设你的项目结构如下:root├── src├──├── components├──├──├── Button.vue├──├──├── ButtonGroup.vue在 root 目录运行如下命令:vuese

2021-12-29 18:39:34 2482

原创 PHP-电商项目-5

一、购物流程概述购物车作用:存放想要购买的商品,最后一次性结算。电商网站购物流程:二、购物车原理1、购物车数据的保存位置Cookie:存储在浏览器,可以长时间存储,直到过期或者被用户清除。Session:存储在服务器,无法长久存储,关闭网站或浏览器,数据被清空。数据表:存储在服务器,可以永久保存。缓存:存储在服务器,可以长时间存储,直到过期。未登录:可以将购物车数据存储在cookie。登录后:将购物车数据存储在数据表,并和用户关联。在用户登录时,将cookie中的购物车数据迁移到数据

2021-12-29 10:02:03 554

原创 PHP-电商项目-4

十九、添加完整商品数据使用后台管理系统,添加完整商品数据。用于测试及前台页面展示。添加三级商品分类(一般有现成的测试数据)添加品牌(在一个三级分类下添加至少一个品牌)添加商品类型(商品模型)(至少两个规格,每个规格至少两个规格值。至少两个属性)添加商品(选择分类、选择品牌、上传logo图片、上传相册图片、选择商品类型、每种规格至少选择两个规格值)一、前台模板整合以home模块作为前台网站模块。设置默认模块:application/config.php// 默认模块名'default_

2021-12-21 19:58:50 1005

原创 XSS攻击

1、什么是XSS攻击跨站脚本攻击(Cross Site Scripting),攻击者往web页面里插入恶意Script代码,当用户浏览网页之时,嵌入其中Web里面的Script代码会执行,从而达到恶意攻击用户的目的。模拟过程:添加功能中,请求参数值包含script标签js代码添加成功后,数据表中:12 | test访问新增的这条数据,js代码会被浏览器解析并执行。Xss攻击严重影响了正常用户对网站的访问。2、转化的思想防范xss攻击转化的思想:将输入的内容中的<>转化为html

2021-12-17 16:27:47 1270

原创 PHP-电商项目-3

规范具体场景实际举例小写+下划线目录名、除了类文件之外的其他文件、函数名、配置名称、数据表名和字段名、路由url、请求参数名(控制其名称两个单词)视图目录、模板文件、默认访问url中控制器名;(关联模型)with方法参数大写+下划线常量常量大驼峰(首字母大写)类名、类文件名控制器类、模型类、其他自定义类小驼峰(首字母大写)类的方法、类的属性关联模型方法是小驼峰商品相关数据表1、商品分类、商品品牌、商品、商品相册2、商品、商品模型

2021-12-17 13:45:19 737

原创 win11忘记当前密码怎么办

win10升级win11后,要改为Microsoft登录,最后需要验证,需要当前密码这里的密码指的是本地账户的密码不是PIN密码如果忘记的话,首先在搜索栏搜索控制面板打开点击更改账户类型可以再添加一个账户设为管理员一步一步操作,添加完成后然后把新账户设为管理员,切换的新账户登录,去更改旧账户的密码,改好之后再登录旧帐户删除新账户就可以了,这时再去改Microsoft登录,最后需要当前密码的地方输入刚才改的密码就可以了...

2021-12-13 20:25:20 11804 2

原创 PHP-电商项目-2

六 RBAC权限管理1、RABC概念和原理RBAC:全称叫做Role-Based Access Control,中文翻译叫做基于角色的访问控制。其主要的作用是实现项目的权限控制。效果:让不同的管理员,能够访问的页面不一样。比如运营人员 只能看到运营相关模块。财务人员只能看到财务相关模块。传统权限管理:RBAC权限管理:RBAC权限管理:权限的管理相对规范,角色拥有的权限可以按照一定的标准定义好。新增管理员,只需要指定角色,即可拥有对应的权限。2、数据表设计基本数据表:管理员表、角色表

2021-12-07 19:25:45 495

原创 PHP-电商项目-1

一、项目介绍1、项目开发流程产品经理:进行需求分析,整理需求文档(产品原型文档)(需求评审)UI设计:根据需求文档,设计每一个页面,出设计图前端:根据需求文档和设计图,编写前端html代码后端:技术选型、架构设计、数据库设计、(开发文档)、开发项目功能、自测(单元测试)测试:编写测试用例,逐个进行测试。(分多轮)上线:项目部署到线上服务器2、主要电商模式2.1 B2B–企业对企业B2B( Business to Business)是指进行电子商务交易的供需双方都是商家(或企业、公司)

2021-11-30 09:21:28 1599 2

原创 对象转原始类型 (a==1&&a==2&&a==3)===true

实现宽松等于下的 (a1&&a2&&a==3) 为真方法一const a={ i:1, toString(){ return a.i++ }}console.log(a==1&&a==2&&a==3)方法二let a=new Proxy({i:1},{ get(target){ return ()=>target.i++ }})console.log(a==1&&a==2&&am

2021-11-26 14:37:04 380

原创 RestFul接口设计

一、接口编程1、背景随着互联网的发展,尤其是移动互联网为代表的Web3.0时代,客户端层出不穷,以APP、微信、PC浏览器为代表,服务端业务逻辑基本一致的,那么有没有一种方式可以做到“服务端一次编写,客户端随时接入”呢流行的方案就是“接口编程”2、接口编程API(Application Programming Interface,应用程序编程接口),程序之间交互数据的一种方式。以浏览器和服务器之间的数据交互(ajax请求)为例:请求方式:get方式 post方式请求协议:http协议 ht

2021-11-25 16:30:50 5895 2

原创 ThinkPHP框架-4

二十五、分页功能

2021-11-23 14:54:49 341

原创 ThinkPHP框架-3

十九、修改操作(手册–模型–更新)(CURD create update read delete)1、更新一条数据

2021-11-20 14:34:42 1356

原创 ThinkPHP框架-2

十、ThinkPHP框架中的模型模型的作用、处理业务数据、与数据库进行交互。1、导入数据表新建tpshop数据库(create database tpshop character set utf8 collate utf8_general_ci)导入数据表说明:如果导入sql文件时,有报错,提示类似“不能使用innodb”解决办法:打开mysql配置文件,修改如下重启mysql即可如果重启失败,找到mysql的安装目录下data目录,删除以ib开头的文件(可以先备份)再重启。2、

2021-11-16 20:03:26 1780

uni-app封装请求完成示例项目

uniapp封装请求示例完整项目,接口都写在一个脚本里,通过参数传入uni.request进行请求,缩小代码重复量,在request文件请求中通过promise封装进行结果和错误捕获,

2020-11-02

空空如也

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

TA关注的人

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