自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 手写完美版 Promise

1、promise 构造函数接收一个回调函数,该函数会在 new Promise 时候执行。2、promise 构造函数里会创建两个函数,第一个函数会使该 promise 对象的状态变成 resolve,另一个函数会使该 promise 对象的状态变成 reject。3、promise 构造函数里会把这两个函数作为回调函数的参数,这样回调函数可以改变 promise 实例的状态。

2024-07-06 10:51:12 936

原创 pinia 的使用方法

1、在 mian.js 导入 pinia 里的 createPinia 函数。2、app.use 这个 createPinia 函数的返回值。3、创建一个 js 文件(该文件保存着共享的数据,共享的方法),惯例上会叫该 js 文件为。4、在文件里,从 pinia 里导入 defineStore 函数(该函数是定义 store 的函数)。5、在 defineStore 函数的第二个参数定义共享的数据和方法。

2024-01-21 11:21:24 801

原创 vuex 辅助函数

vuex 内部封装了四个辅助函数,分别用来对应 state,getters,mutations,actions 的操作。辅助函数,就是语法糖。

2023-09-02 15:40:41 347

原创 ThinkPHP 一对多关联

php// 不是默认主键名称记得定义 pk 属性// 获取用户详情以及用户的所有文章// 一对多获取用户的文章// 完整写法。

2023-07-27 10:06:06 1011

原创 ThinkPHP 远程一对多关联

php// 不是默认主键名称记得定义 pk 属性// 获取商品详情以及商品的评论// 第二个参数是所用到的关联方法的方法名// 远程一对多关联获取商品的所有评论// 完整写法。

2023-07-19 11:23:02 552

原创 ThinkPHP 多对多关联

php// 获取商品的分类// Goods 模型多对多关联 Category 模型// 完整写法。

2023-07-18 11:23:36 1552

原创 ThinkPHP 多态关联

php/*** 获取所有属于文章的评论。*/// Article 模型多态一对多关联 Comment 模型// 完整写法morphMany多态关联允许一个模型在单个关联方法中关联一个以上其它模型。多态关联是动态的,关联的对象取决于多态字段。

2023-07-14 16:36:40 995

原创 TP5 模型新增的返回值、返回值的判断以及所使用的SQL

TP5 模型新增的返回值、返回值的判断以及所使用的SQL

2022-11-04 10:36:28 1557 1

原创 TP5 模型更新的返回值、返回值的判断以及所使用的SQL

TP5 模型更新的返回值、返回值的判断以及所使用的SQL

2022-11-03 14:20:32 1668

原创 TP5 模型查询的返回值、返回值的判断以及所使用的SQL

TP5 模型查询的返回值、返回值的判断以及所使用的SQL

2022-10-31 14:06:18 1652

原创 php 命名空间

PHP 命名空间

2022-09-05 17:24:50 741

原创 控制反转与依赖注入

控制反转与依赖注入。

2022-09-02 11:22:24 342

原创 PHP 造轮子 之 模板引擎

缓存功能还没开发。<?phpnamespace s;class Template{ private static $content = null; private static $app_path = null; private static $public_path = null; public static function compi...

2020-03-08 00:22:43 375

原创 基于节点创建虚拟DOM

该算法通过递归已存在的节点从而创建出虚拟DOM。function createVNode(node, vNode) { let props = {}; let children = []; if(node.nodeType === 1){ Array.from(node.attributes).forEach((key) =>{ ...

2020-01-22 20:37:01 541

原创 基于节点的 Diff 算法

该算法比较新旧两个节点的差异,在最大程度复用旧节点的基础上把旧节点更新为新节点。该算法的策略和 React 的tree diff 一样,只比较同级节点,并且不移动节点,应该说不需要移动节点,因为新节点已经是真实的节点,而不是虚拟的节点。function diff(oldNode,newNode){ if(oldNode.isEqualNode(newNode)){ ...

2020-01-21 15:59:03 425

原创 手写一个不需要虚拟DOM的MVVM框架 —— Sue.js

我手写了一个 不需要虚拟DOM 的 MVVM 框架,已经实现v-htmlv-textv-ifv-showv-model绑定事件现在在做 v-for感觉已经做不下去了。

2020-01-14 15:41:12 325 1

原创 造轮子之 高性能滚动监听 + 导航高亮 + 点击导航滚动跳转 + sroll节流

基于浏览器窗口滚动监听↑离开检测↑进入页面时会检测一遍有没有符合条件的元素 ↑点击导航滚动跳转↑基于DOM元素滚动监听 + 离开检测↑点击导航滚动跳转↑也有进入页面时检测一遍有没有符合条件的元素的功能,就不上图了开发过程最近喜欢造轮子,滚动监听是我造轮子计划中的一部分,因为它太常见了。一开始我研究了B...

2019-12-27 22:13:35 627 1

原创 造轮子之 高性能轮播图

实现的功能有(图片看起来有点卡,但事实上是非常非常流畅的轮播图)无缝轮播。实现原理:如上图所示,这里有5张图片,而事实上这里有7张图片。在最开头有一张最末尾的图片,在最末尾有一张最开头的图片,所以总共7张图片,队列上就像是这样的6- 1 - 2 - 3 - 4 - 5 - 1 排列,当5移向末尾的1时,视觉上就像回到首位的1一样,移动完成时一瞬间把位置移回首位的1即可。...

2019-12-21 01:29:17 512

原创 造轮子之 确认框

确认框是模态框的一种具体用途,非常常见也非常实用。第一种是没有遮罩层的确认框第二种是有遮罩层的确认框(并隐藏掉右边滚动条)第二种确认框源码下载地址https://gitee.com/island_tears/confirmation_box使用说明引入 confirm.js 和 confirm.css 文件。 使用前先实例化 confirm 对象...

2019-12-11 22:19:59 453

原创 ul、li 标签实现完美表格

第一种是没有缺口的,如下图第二种是有缺口的,如下图两种表格的最大特点就是不用给表格里的每个 li 元素都单独设置 css 样式,要用的时候直接闭着眼睛循环 li 标签即可。第一种的特点是1、内边框的大小是一致的。2、内边框的大小和外边框的大小可以分别设置。3、内边框和外边框的颜色可以分别设置。4、每个小方框的白色部分大小是一致的(空缺部分不算)。...

2019-12-03 22:52:07 4962

原创 仿造虎扑步行街首页。

原网站https://bbs.hupu.com/all-gambia我非常喜欢虎扑,所以我打算仿造一个虎扑论坛,这是仿造的第一个网页,也是虎扑步行街的首页,我仿造这个页面并对这个页面进行了优化,比如1.放弃了浮动布局,全部采用了flex布局。2.网站布局和特效纯采用html+css的方式实现,比原网站流畅了许多,比如关注虎扑、消息、重点是左边导航栏的特效比原网站流畅非常多。3.加...

2019-12-03 02:07:14 3991 1

原创 原生 javascript 实现 分页条

黑色方框只是为了更好地演示而加上去的。该分页条最大的特点就是即可以把分页条的高度和宽度条设成固定的高度和宽度,也可设置成随父元素的高度和宽度。当把分页条的宽度设置成随父元素的宽度时,只要父元素的宽度是可以随屏幕变化,则分页条的宽度也可以随屏幕变化,这样分页条就可以实现自适应屏幕宽度了。<!DOCTYPE html><html lang="zh...

2019-10-19 00:02:34 512

原创 PHP 常用的日期函数

//获取时间戳time() //函数当前时间的时间戳。mktime() //返回指定日期的世界戳。strtotime() //函数将任何英文文本的日期或时间描述解析为 Unix 时间戳microtime() //函数返回当前 Unix 时间戳的微秒数。//时区相关date_default_timezone_get() //函数返回当前脚本所使用的时区。date_de...

2019-10-17 04:20:34 297

原创 PHP 中所有的超全局变量

PHP中,超全局变量是一些已经被预定好的变量,可以在脚本的所有作用域中使用。$GLOBALS //该变量是一个数组,该数组保存了对所有全局变量的引用。其中键名是变量名,键值是变量值。$_SERVER // 该变量保存了报头信息、PHP脚本信息以一点点服务器信息。$_REQUEST // 该变量保存了以 get 和 post 方式提交过来的数据。$_GET // 该变量保存了 以...

2019-10-17 03:17:12 301

原创 PHP 中所有魔术常量

__LINE__ //文件中的当前行号。__FILE__ //获取当前文件的绝对路径,包含文件名。__DIR__ //获取当前文件的目录名,除非是根目录,否则目录中名不包括末尾的斜杠。__FUNCTION__ //获取当前函数被定义时的名称。__CLASS__ //获取当前类被定义时的名称。__TRAIT__ //获取当前Trait类的名称。__METHOD__ //获取...

2019-10-17 02:29:22 218

原创 PHP 所有魔术方法

<?php__construct() //构造方法,每次创建对象时都会调用。__destruct() //析构方法,该方法会在到某个对象的所有引用都被删除或者当对象被显式销毁时执行。//关于访问不存在的属性或对象__get() // 读取不存在的属性的值时,该方法会被调用。__set() // 在给不存在的属性赋值时,该方法会被调用。__isset() //当对不...

2019-10-17 02:12:43 110

转载 PHP 实现适配器模式

适配器模式(Adapter Pattern):将某个对象的接口适配为另一个对象所期望的接口。属于结构型设计模式。(一)为什么需要适配器模式1,某个操作数据库的有两套不同的数据库操作方法,我们通过适配器统一成一个接口。例如,我们待会把mysql和mysqli统一成一个接口。2,我们有多套数据库对应了多种数据库操作,例如MySQL,SqlServer,Oralce,Redis都有对应...

2019-10-17 00:12:30 133

原创 PHP 中的共享锁和排它锁

共享锁和排他锁主要是为了解决并发导致的问题。在PHP中,共享锁和排它锁主要用在两个地方,一个是数据库,一个是文件。PHP对数据库使用锁依靠SQL语句SELECT 默认不加锁 SELECT... LOCK IN SHARE MODE 加共享锁 SELECT ... FOR UPDATE 加排它锁 UPDATE DELETE INSERT 默认加排它锁Msql中共...

2019-10-16 23:40:22 803

原创 PHP 实现注册树模式

class Register { //设置对象数组(树)。 private static $tree = []; //把对象放进对象数组 public static function set($objName,$obj){ self::$tree[$objName] = $obj; } //把对象从对象数组取出 ...

2019-10-16 18:46:08 198

原创 PHP 实现单例模式

class Single { private static $instance; // 私有的静态属性,用来存储当前对象。 // 用静态修饰符 //一是因为静态属性不用实例化就可以使用。 //二是因为自定义的静态实例化方法 getInstance()只能访本类的问静态属性,不能访问本类的非静态属性。 // 用私有修饰符的是因为禁止外部修改这个...

2019-10-16 05:15:39 214

原创 PHP 实现插入排序(Insert sort)

开头先说一下,学习这些排序算法其实只是学习这些算法的思路,PHP开发的时候最好用PHP内置的排序函数,因为PHP内置的排序函数是底层代码实现的,比我们自己用PHP手动写的函数速度快得多得多。我们用来排序的数组必须是符合数组开始索引是明确的,一般是0。 数组索引的必须是连续的整型或者数字字符串或者两者混合。比如://连续的数字字符串索引数组 $arr = [ '0' =...

2019-10-16 02:11:22 378

原创 PHP 实现快速排序(Quick sort)

开头先说一下,学习这些排序算法其实只是学习这些算法的思路,PHP开发的时候最好用PHP内置的排序函数,因为PHP内置的排序函数是底层代码实现的,比我们自己用PHP手动写的函数速度快得多得多。我们用来排序的数组必须是符合数组开始索引是明确的,一般是0。 数组索引的必须是连续的整型或者数字字符串或者两者混合。比如://连续的数字字符串索引数组 $arr = [ '0' =...

2019-10-15 05:18:18 414

原创 PHP 实现选择排序(Select sort)

开头先说一下,学习这些排序算法其实只是学习这些算法的思路,PHP开发的时候最好用PHP内置的排序函数,因为PHP内置的排序函数是底层代码实现的,比我们自己用PHP手动写的函数速度快得多得多。我们用来排序的数组必须是符合数组开始索引是明确的,一般是0。 数组索引的必须是连续的整型或者数字字符串或者两者混合。比如://连续的数字字符串索引数组$arr = [ '0' =&...

2019-10-15 03:41:49 484

原创 PHP 实现冒泡排序(Bubble sort)

开头先说一下,学习这些排序算法其实只是学习这些算法的思路,PHP开发的时候最好用PHP内置的排序函数,因为PHP内置的排序函数是底层代码实现的,比我们自己用PHP手动写的函数速度快得多得多。我们用来排序的数组必须是符合数组开始索引是明确的,一般是0。 数组索引的必须是连续的整型或者数字字符串或者两者混合。比如://连续的数字字符串索引数组$arr = [ '0' =&...

2019-10-14 05:27:34 421

原创 PHP 判断二维数组中是否含有某个值

主要是因为用mysqli_fetch_all() 这函数返回的数组是数字索引的二维数组,有时候我们需要判断一个主键是否在这个二维数组中就会遇到一些麻烦,常见的做法就是写循环判断,但是如果需要判断多次的情况下,我们循环这么多次会大大降低脚本的性能,我们应该要如何改进?思路就是把子数组中的键值作为数组索引,然后直接用 if 或者 array_key_exists()就可以判断了。<?p...

2019-10-13 05:29:57 4479

原创 php 常用的数组函数

数组创建array() //创建数组,返回一个数组与数组指针相关的函数key() //函数返回数组内部指针当前指向元素的键名。若发生错误,则函数返回 FALSE。current() //返回数组内部指针当前指向元素的键值,如果当前元素为空或者当前元素没有值则返回 FALSE。next() //函数将内部指针指向数组中的下一个元素,并输出值。如果没有更多的数组元素则返回 FA...

2019-10-12 04:58:14 380

原创 php 常用的字符串函数

去掉空格 或者 其他预定义 的字符trim( string, [charlist]) //函数移除字符串两侧的空白字符或其他预定义字符。返回被修改的字符串ltrim( string,[charlist]) //函数移除字符串左侧的空白字符或其他预定义字符。返回被修改的字符串rtrim( string,[charlist]) //函数移除字符串右侧的空白字符或其他预定义字符。返回被...

2019-10-12 03:55:13 276

原创 php中,is_null()、isset()、empty()的区别

is_null 函数用于检测 变量 的 值 是否 为 NULL该 函数 返回 TRUE 的条件(满足 其中 之一):作为 该函数 的 参数 的 变量 的值等于NULL。变量 的 值 等于 NULL 的 情况:变量 未赋值。例如$var;变量 的 值 等于NULL。例如$var = NULL;作为 该函数 的 参数 是一个 没有 被声明 的 变量。(会爆出 No...

2019-10-11 19:52:08 175

原创 CSRF的原理、类型以及防范

CSRFCSRF(Cross-Site Request Forgery),中文名称:跨站请求伪造攻击。CSRF原理CSRF原理就是攻击者想方设法让你访问某一条链接,如果你真的访问了这一条链接,你就会执行攻击者想让你执行的操作了,简而言之,就是你如果访问了攻击者的链接,你就会被攻击。用户的操作其实是通过访问具体的URL从而让服务端去识别用户的操作然后去执行特定的脚本。我举个...

2019-05-13 00:41:27 2108

原创 拖动验证(前端+后端)

按照自己的思路写了一个拖动验证,不知道别人是不是这样写的,我觉得方法应该差不多。不废话,上代码。<?php require_once 'Check.php'; if($data = Check::create()){ $x = $data['x']; $y = ($data['y'] - 5).'px'; $name = $data['na...

2019-05-05 01:59:11 2908

空空如也

空空如也

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

TA关注的人

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