crmeb
文章平均质量分 79
本栏目为收费栏目
CRMEB定制开发
PHP专业二开
展开
-
一个标星 9.4k+ 的多语言全开源多端商城系统
采用前后端分离技术,基于 thinkphp6+uniapp 框架开发,客户移动端采用uni-app开发,管理后台前端使用iviewUI开发,系统支持微信公众号端、微信小程序端、H5端多端账号同步,可快速打包生成APP;原创 2022-10-14 18:21:33 · 830 阅读 · 2 评论 -
最流行的布局方案 Flex 弹性盒布局详解
Flex布局又称弹性盒布局,是在CSS3中的一种新布局方式,可以简洁、方便、响应式地实现各种页面布局,因此自一提出受到了极大地追捧,目前也得到了各大主流浏览器的支持,因此迅速替代了之前的“display+float+position”的布局形式。原创 2022-09-26 16:59:13 · 2483 阅读 · 1 评论 -
使用Vue的transition组件写一个数字滚动竟然如此简单
以前要做一个数字滚动需要弄一个插件,插件代码也多,通过js进行控制处理,一般都是把0-9的数字放一排,然后滚动,滚动完成把头部的数字放到尾部,而使用transition组件只要这么一丢丢代码就可以完成相同的功能,如果在加上vue3新出的css变量绑定,还可以做到过渡动画执行时间的动态控制。原创 2022-09-22 14:18:19 · 1085 阅读 · 0 评论 -
拼多多的本质是《羊了个羊》
前段时间,羊了个羊的爆火原理让各位产品经理、运营拆解了个遍。大家一边骂,一边玩儿。这和拼多多面临的情况是一样的,大家一边骂,一边下单。两者有什么共通之处吗?本文作者将拼多多和羊了个羊结合起来进行了分析,与你分享。转载 2022-09-22 11:54:18 · 284 阅读 · 0 评论 -
程序员 40 岁之后的出路在哪里?
程序员的职业生涯很短暂,我们必须提前计划。 同时,要有危机感,要有替代方案,不要等到走入死胡同才后悔。原创 2022-09-20 09:25:53 · 21978 阅读 · 0 评论 -
Vue/JS自定义指令:实现元素滑动、移动端适配以及边界处理
元素滑动需要依赖于鼠标的移动,鼠标的移动位置决定了元素滑动的位置,元素的位置是通过调整左上顶点坐标来的,所以我们要知道元素滑动后的左上顶点坐标,这样才能将元素移动到指定位置..原创 2022-09-13 15:58:25 · 769 阅读 · 0 评论 -
在 JavaScript 中,什么时候使用 Map 或胜过 Object
在 JavaScript 中,对象是很方便的。它们允许我们轻松地将多个数据块组合在一起。 在ES6之后,又出了一个新的语言补充-- Map。在很多方面,它看起来像是一个功能更强的对象,但接口却有些笨拙。原创 2022-09-09 11:14:40 · 319 阅读 · 0 评论 -
从任正非的内部信,看系统开发公司如何度过寒冬
年营收破6000亿的华为都在准备“过冬”,不禁让人想起,今年一季度时,腾讯提出“实施成本控制”,二季度随后就“主动退出某些非核心业务,收紧营销开支,降低运营费用”,大企业发出的信号已经很强烈,对于中小企业来说,也是时候行动起来,提前为“过冬”做准备了。...原创 2022-09-01 16:33:17 · 273 阅读 · 0 评论 -
程序员必须知道的八件事
关键是你不会一直这么能赚钱的,有人会说,我技术多么多么厉害,没错,确实有技术厉害的人,人家这个薪资会随着知识的积累而水涨船高,但现实情况是,大多数工程师都是普通工程师,能替代你的年轻人是无限的,不要迷信什么高端技术,在金钱面前,年轻人的学习能力绝对超乎你的想象。千万不要被程序员的高薪资所蒙蔽了,什么今年月薪一万,明年月薪一万五,后年又涨到两万五,很多人就因为这个飘了,认为自己的薪资能够一直涨下去,如果你这么想的话,我可以非常负责任的告诉你,即便你做了程序员拿了高工资,你也一定挣不到钱。...原创 2022-08-29 11:54:14 · 704 阅读 · 1 评论 -
HR们,快看这是不是你想要的办公神器!
作为公司的HR,纸质化的传统人员档案管理和线上数字化管理,你选哪个?线下找领导签字审批和线上审批,你想选哪个?线上数据直接导出和线下自己一个个去输入,又会选哪个?相信每个人心中都有答案!用陀螺匠·企业助手,9大功能保障人事工作,各种智能办公工具,帮助企业实现数字化管理。原创 2022-08-25 16:19:12 · 225 阅读 · 0 评论 -
基于 Nginx 的负载均衡原理与实战
什么是负载均衡?顾名思义就是让客户端的请求均匀地分布到各个服务器上。从下图可以看出,客户端的请求先到达负载均衡器,由负载均衡器通过一系列算法将请求转发到某台上游的业务服务器上。实现负载均衡的方式有很多,下面将列出几种方式,并对比优劣:硬件层面可以通过 F5 实现负载均衡,性能优异。F5 的底层是在芯片层面做了优化,这样就使得它的性能不依赖主机操作系统的处理能力,但是 F5 价格高昂,一般小公司用不起软件层面可以通过 LVS 来实现负载均衡,这是一款中国人开发的软件。原创 2022-08-25 10:13:05 · 169 阅读 · 0 评论 -
Vue3开发最佳实践和实用技巧(上)
上面 useTitle 我们只需传入 title 即可 ,这个 title 是计算出来的一个 ref 数据,当我们改变 name 的时候,因为 title 依赖 name 所以也会改变。上面的 newTitle 参数如果传入了 ref 数据,则会使用传入的 ref 作为 title,反之就会构建新的 ref 赋值。链接: https://pan.baidu.com/s/14G-bpVthImHD4eosZUNSFA?因为如果将一个 ref 传递给 ref 函数,他会原样返回,并不会产生两层。原创 2022-08-20 16:23:27 · 862 阅读 · 0 评论 -
快速掌握 TypeScript 新语法:infer extends
Typescript 支持 infer 类型,可以通过模式匹配的方式,提取一部分类型返回。但是 infer 提取出的类型是 unknown,后面用的时候需要类似和 string 取交叉类型,或者 xxx extends string 这样的方式来转换成别的类型来用。这样比较麻烦。所以 TS 4.7 实现了 infer extends 的语法,可以指定推导出的类型,这样简化了类型编程。而且,infer extends 还可以用来做类型转换,比如 string 转 number、转 boolean 等。原创 2022-08-19 15:06:33 · 325 阅读 · 0 评论 -
【Java进阶】学好常用类,code省时省力(一)
所谓单例,即只有一个实例(对象),即保证在整个应用中某个类有且只有一个实例,即类在堆内存中只能创建一个对象。String substring(int beginIndex, int endIndex):截取指定区域的字符串(从0开始,左闭右开)(比如截取文件的文件名部分)如果工具方法未用static修饰,则需要创建工具类对象调用工具方法,这时我们应考虑将工具类设计为单例模式。所谓工具类,即将完成通用功能的方法分类放到类中,工具类能够被高效地重复使用,使我们的编码快速、高效。...原创 2022-08-18 18:04:05 · 256 阅读 · 0 评论 -
Linux 三剑客grep sed 与 awk
NF :字段数量,共有多少字段, NF引用最后一列,NF引用最后一列,NF引用最后一列,(NF-1)引用倒数第2列。grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来(匹配到的标红)。FNR :各文件分别计数, 行号,后跟一个文件和NR一样,跟多个文件,第二个文件行号从1开始。NR :行号,后可跟多个文件,第二个文件行号继续从第一个文件最后行号开始。RS :输入记录分隔符,指定输入时的换行符,原换行符仍有效。ARGV :数组,保存的是命令行所给定的各参数,查看参数。...原创 2022-08-12 16:42:26 · 189 阅读 · 0 评论 -
es-head插件插入查询以及条件查询(五)
页面详细介绍创建一个linuxbook的索引库,类型为book写入一个数据,id为 1 ,书名称为nginx,书价格为 35 元,书的页数为 206 页,书分类为web的数据 [ root@elaticsearch ~ ] # curl -XPOST '127.0.0.1:9200/linuxbook/book?"total" : 2 , "successful" : 1 , "failed" : 0 } , "_seq_no" : 0 , "_primary_term" : 1 } 复制代码。...原创 2022-08-10 14:42:01 · 4932 阅读 · 0 评论 -
crmeb多商户swoole端口被占用杀死进程详细教程 Error: Address already in use[98]
2、 如果服务器上有其他的项目使用了此端口,修改一下此项目的运行端口,然后重启swoole即可。1、首先确定服务器上只有一套多商户代码,或者是没有其他地方用到了 8324端口;执行 php think swoole restart 命令的时候,提示。进入命令行执行以下命令。如何进入命令行点这里。这个是服务器的 8324 端口被占用了。执行了以后,在重启swoole就可以了;......原创 2021-03-03 09:43:56 · 1466 阅读 · 0 评论 -
【面试高频题】可逐步优化的链表高频题
深拷贝应该正好由 n 个 全新 节点组成,其中每个新节点的值都设为其对应的原节点的值。新节点的 next 指针和 random 指针也都应指向复制链表中的新节点,并使原链表和复制链表中的这些指针能够表示相同的链表状态。2.对原链表和新链表进行同时遍历,对于原链表的每个节点上的 random 都通过「哈希表」找到对应的新 random 节点,并在新链表上构造 random 关系。2.完成 1 操作之后,链表的奇数位置代表了原链表节点,链表的偶数位置代表了新链表节点,且每个原节点的。指针执行了对应的新节点。..原创 2022-08-09 11:43:04 · 155 阅读 · 0 评论 -
写给 Java 程序员的前端 Promise 教程
我们在 Promise 中写异步任务执行的代码,在上面的案例中,松哥通过 setTImeout 方法模拟了一个耗时操作,异步任务执行完毕后,我们调用 resolve 方法返回调用的结果(会进入到下一步的 then 中),也可以调用 reject 方法表示调用失败(会进入到 catch 中)。这就是前端所谓的回调地狱。就说一句,如果 then 中返回的是一个 Promise 对象,那么接下来的 then 其实是这个 Promise 对象的 then,而不是一开始的 Promise 的 then 了。...原创 2022-08-08 14:42:37 · 149 阅读 · 0 评论 -
GET 和 POST 有什么区别?
GET 和 POST 是 HTTP 请求中最常用的两种请求方法,它们的底层都是基于 TCP/IP 实现的。它们的区别主要体现在 5 个方面:缓存不同、参数长度限制不同、回退和刷新不同、历史记录不同、能否保存为书签不同,但它们最大的区别是规范和约定上的不同,规范中定义 GET 是用来获取信息的,而 POST 是用来传递实体的,并且 GET 请求的参数要放在 URL 上,而 POST 请求的参数要放在请求正文中。源码附件已经打包好上传到百度云了,大家自行下载即可~...原创 2022-08-03 09:57:16 · 1615 阅读 · 1 评论 -
几种常见的跨域解决方法
由于浏览器的同源策略,当我们请求网络资源时,所在页面的url中的协议,端口,域名其中一个与请求资源的url不同,都会出现跨域的问题。但是浏览器不能没有这个策略,这样会很危险,像csrf,xss攻击等**。那么这里有个容易理解错误的地方,跨域并不是说服务器没法返回资源给浏览器,而是浏览器没办法正确拿到,这不是服务器的问题。**但是也不是所有的请求都是这样的,像表单提交就不存在什么跨域问题,因为表单不需要服务器返回数据给它,它只负责提交就好了。...原创 2022-08-02 15:22:37 · 798 阅读 · 0 评论 -
Git 不要只会 pull 和 push,学学这 5 条提高效率的命令(下)
使用git作为代码版本管理,早已是现在开发者必备的技能,但是大多数的开发者还是只会最基本的保存,拉去,推送,遇到一些commit管理的问题就束手无策,或者用一些不优雅的方式解决。下面分享一些在开发工作中实践过的实用命令,这些都能够大大提交工作效率,还能解决不少疑难场景。给定一个或多个现有提交,恢复相关提交引入的更改,并记录一些这些更改的新提交,这就要求你的工作树是干净的(没有来自头部的修改)。将现有的提交还原,恢复提交的内容,并生成一条还原记录。应用场景revert普通提交应用场景。...原创 2022-08-01 14:45:39 · 180 阅读 · 0 评论 -
如何解除Mac系统文件的隐藏状态?
macOS的文件管理“访达”默认没有提供文件隐藏功能,当我们想要隐藏某些文件或文件夹时该如何操作?其实在macOS系统上隐藏文件的方法非常简单,只需要在终端执行一个简单的命令即可让文件或文件夹隐藏起来。详细的Mac隐藏文件方法如下1、首先要打开终端.app,点击桌面底部“启动台”(Dock栏)再点击“其他”,点击“终端”打开;2、复制命令“chflagshidden”(注意后面有一个空格也需要复制)粘贴到终端里面;...原创 2022-07-29 17:36:24 · 1327 阅读 · 0 评论 -
vue一些高级概念
除了核心功能默认内置的指令(v-model和v-show),Vue也允许注册自定义指令。注意,在Vue2.0中,代码复用和抽象的主要形式是组件。然而,有的情况下,你仍然需要对普通DOM元素进行底层操作,这时候就会用到自定义指令。比如项目中常用的水印功能。我们对一个div范围内添加水印样式。可以用到自定义指令。首先看看效果图生成水印有许多方法。我们现在通过自定义指令的方式来操作,以便熟悉自定义指令的使用。先上代码{{//当前指令的钩子函数略bind(){...原创 2022-07-28 15:12:37 · 141 阅读 · 0 评论 -
怎么简单实现菜单拖拽排序的功能
本文主角是ItemTouchHelper。它是RecyclerView对于item交互处理的一个「辅助类」,主要用于拖拽以及滑动处理。以接口实现的方式,达到配置简单、逻辑解耦、职责分明的效果,并且支持所有的布局方式。...原创 2022-07-27 14:31:56 · 3043 阅读 · 0 评论 -
手把手教你在 Vue3 中自定义指令
const{==-1;});if(!f){}}})复制代码usersPermissions表示当前用户所具备的权限,正常该数据应该是从服务端加载而来,但是我这里简单起见,就直接定义好了。delete']">删除用户复制代码好啦,Vue3自定义组件学会了没?源码附件已经打包好上传到百度云了,大家自行下载即可~链接httpspwd=yu27提取码yu27百度云链接不稳定,随时可能会失效,大家抓紧保存哈。...原创 2022-07-26 10:20:17 · 1615 阅读 · 0 评论 -
谁动了我的内存,揭秘 OOM 崩溃下降 90% 的秘密
最近一直在做内存和ANR相关的优化,接下来我将会花几篇文章梳理一下内存相关的优化,以及我是如何将OOM崩溃率下降90%。不知道小伙伴们有没有经历过,相同的优化方案,A应用上线之后,崩溃率下降很多,但是B应用上线只有一点点收益,每个优化方案,在不同的App上所得到的优化效果未必一样,因为每个App在不同的国家和地区面对的用户群体不一样,因此机型也都不一样,所以我们需要了解内存相关的知识点,结合线上和线下数据,对自己的App进行归因,对症下药,才能取得较大的收益。。...原创 2022-07-25 15:28:32 · 278 阅读 · 0 评论 -
reactive + effect + track + trigger 实现响应式系统
在此基础上,结合前面所实现的reactive方法,已经初步具备响应式系统的雏形了页面首次渲染时,执行effect方法,将副作用函数fn收集起来并执行,此时会用到某些响应式数据,需要记住fn所依赖的属性;前面示例中的副作用函数fn执行时,用到了一个name属性,也就是访问到了响应式对象的属性,所以逻辑会走到reactive方法中实现代理那里,对属性get操作的监听。effect方法要做的事情,就是将这个原本属于用户的逻辑封装起来,交给框架来管理,在合适的时机去调用。...原创 2022-07-23 10:12:28 · 208 阅读 · 0 评论 -
深入Vue原理——提升硬核能力
理解发布订阅,关键是理解一对多1.从浏览器事件说起dom绑定事件的方式,我们学过俩种这俩种绑定方式的区别是,第二种方案可以实现同一个事件绑定多个回调函数,很明显这是一个一对多的场景,既然浏览器也叫作事件,我们试着分析下浏览器事件绑定实现的思路1.首先addEventListenr是一个函数方法,接受俩个参数,分别是事件类型和回调函数2.因为是一个事件绑定多个回调函数,那在内存里大概会有这样的一个数据结构{click['cb1','cb2',...]}复制代码收集更新函数。...原创 2022-07-22 11:44:30 · 160 阅读 · 0 评论 -
Chrome插件开发教程
浏览器插件是一种可增强网页功能的嵌入程序。有了插件,用户的使用不再局限于网页,还可以享用插件带来的增强功能。用户只需到官方插件商店搜索、下载、安装即可使用,非常便捷。插件商店由不同的浏览器厂商维护,比如你要在Chrome上使用插件,要到ChromeWebstore下载安装。Firefox上亦然。创建manifest{"name"3}复制代码该文件描述了插件的基本属性信息、代码的运行路径等。后面我会不断地丰富其内容。加载插件这里我们直接载入整个目录(尚未打包)1.地址栏输入chrome。...原创 2022-07-21 17:06:32 · 6661 阅读 · 3 评论 -
80% 应聘者都不及格的 JS 面试题
扎实的语言基础、与时俱进的能力、强大技术自驱力。源码附件已经打包好上传到百度云了,大家自行下载即可~链接httpspwd=yu27提取码yu27百度云链接不稳定,随时可能会失效,大家抓紧保存哈。如果百度云链接失效了的话,请留言告诉我,我看到后会及时更新~...原创 2022-07-21 15:22:38 · 99 阅读 · 0 评论 -
从0搭建Vue3组件库之Icon组件
到这里一个Icon组件基本也就开发完了,如果你想了解更多组件的实现,你可以关注Vite+TypeScript从零搭建Vue3组件库-东方小月的专栏-掘金(juejin.cn),将不定期的更新一些组件的实现。同时如果你发现文中有错误的地方或者有其它改进的地方欢迎指出,大家一起学习。源码附件已经打包好上传到百度云了,大家自行下载即可~链接httpspwd=yu27提取码yu27百度云链接不稳定,随时可能会失效,大家抓紧保存哈。...原创 2022-07-21 14:38:54 · 1657 阅读 · 0 评论 -
如何让localStorage支持过期时间设置?
聊到localStorage想必熟悉前端的朋友都不会陌生,我们可以使用它提供的getItem,setItem,removeItem,clear这几个API轻松的对存储在浏览器本地的数据进行**「读,写,删」操作,但是相比于cookie,localStorage唯一美中不足的就是「不能设置每一个键的过期时间」**。localStorage属性允许我们访问一个Document源(origin)的对象Storage;存储的数据将保存在浏览器会话中。...原创 2022-07-20 14:21:06 · 576 阅读 · 0 评论 -
不要再搞混Vue的响应式原理和双向数据绑定了
之前公司招人,面试了一些的前端同学,因为公司使用的前端技术是Vue,所以免不了问到其响应式原理和Vue的双向数据绑定。但是这边面试到的80%的同学会把两者搞混,通常我要是先问响应式原理再问双向数据绑定原理,来面试的同学大都会认为是一回事,那么这里我们就说一下二者的区别。源码附件已经打包好上传到百度云了,大家自行下载即可~链接httpspwd=yu27提取码yu27百度云链接不稳定,随时可能会失效,大家抓紧保存哈。如果百度云链接失效了的话,请留言告诉我,我看到后会及时更新~...原创 2022-07-19 11:39:23 · 567 阅读 · 0 评论 -
请求转发和请求重定向有什么区别?
请求转发(Forward)发生在服务端程序内部,当服务器端收到一个客户端的请求之后,会先将请求,转发给目标地址,再将目标地址返回的结果转发给客户端。而客户端对于这一切毫无感知的,这就好比,张三(客户端)找李四(服务器端)借钱,而李四没钱,于是李四又去王五那借钱,并把钱借给了张三,整个过程中张三只借了一次款,剩下的事情都是李四完成的,这就是请求转发。**请求重定向(Redirect)...原创 2022-07-18 11:11:00 · 13751 阅读 · 4 评论 -
JavaScript!震惊你,只需一行代码!
前些年的段子里,总有一些主考官的思想格局打不开,抛出这样的问题让我在10秒钟内记住你。于是就有了,被打耳光的,被亲的,被扒衣服的,摔手机的······但作为程序员,要怎么用代码震惊的别人呢?很简单用简单的逻辑和尽可能少的代码行来解决一个复杂的问题。随着ES6箭头函数的引入,可以创建看起来优雅而简单的单行代码。在今天的文章中,我将与你一起来学习11个罕见但功能强大的单行代码。现在,准备好,让我们开始吧!这个想法很简单,我们使用传递的参数char拆分字符串并获取返回数组的长度。...原创 2022-07-15 10:16:01 · 252 阅读 · 0 评论 -
Vue3.2 中新出的 expose 是做啥用的?
随着Vue 3.2的发布,一个新的组合工具提供给我们,叫做 expose。你是否曾经创建过一个需要向模板提供一些方法和属性的组件,但又希望这些方法对组件是私有的,不能被父类调用?如果你在开发一个开源的组件或库,你有可能想保持一些内部方法的私有性。在Vue 3.2之前,这并不容易实现,因为所有在选项API中声明的方法或数据等都是公开的,所以模板可以访问它。组合API也是如此。我们从setup方法中返回的所有东西都可以被父类直接访问。让我们看一个实际的例子。想象一下,我们有一个组件,它创建了一个计数器,每原创 2022-07-14 14:22:55 · 123 阅读 · 0 评论 -
为什么要用HTTPS?它有什么优点?
说到 HTTPS 相信大部分人都是不陌生,因为目前我们使用的绝大数网站都是基于 HTTPS 的,比如以下这些:那么问题来了,他们为什么要使用 HTTPS 呢?HTTPS 有哪些过人之处呢?在说 HTTPS 之前,我们先要了解 HTTP,因为 HTTP 是 HTTPS 通讯的基础。HTTP(HyperText Transport Protocol)超文本传输协议,它用于传输客户端和服务器端的数据。HTTP 使用很简单也很方便,但却存在以下 3 个致命问题:使用明文通讯,内容可以被窃听。不验证通讯方的原创 2022-07-13 10:27:12 · 124 阅读 · 0 评论 -
API 请求慢?这次锅真不在后端
我们在开发过程中,发现后端 API 请求特别慢,于是跟后端抱怨。“怎么 API 这么慢啊,请求一个接口要十几秒”。而且这种情况是偶现的,前端开发同学表示有时候会出现,非必现。但是后端同学通过一顿操作后发现,接口没有问题,他们是通过 postman 工具以及 test 环境尝试,都发现接口请求速度是没有问题的。“那感觉是前端问题”?我们来梳理一下问题,如下:时间都去哪了?第一个问题,API 耗费的时间都用来做什么了?我们打开 Chrome 调试工具。在 network 中可以看到每个接口的耗时。hov原创 2022-07-12 11:17:32 · 2062 阅读 · 0 评论 -
复杂表达式输入组件的实现与校验逻辑
在电商后台的数据中存在着许多维度的筛选项,如工单ID,店铺ID,行业类型,是否14日有效负向反馈订单等。有时候需要组合这些维度项来查询匹配的商客服工单或CCR数据等。而这些组合就是将不同的维度项做加减乘除的运算,形如下图:并且在表达式输入有误时,需要校验并提醒:可以看出,无论筛选项(灰色tag部分)有多少复杂,该组件可以被简单抽象为以下形式:我们所需的组件展示形式和 Auxo 的 标签输入框十分类似,只是它的标签是集中在了头部:Auxo InputTag 组件总体是通过维护 1 个 tagRend原创 2022-07-11 15:33:25 · 613 阅读 · 1 评论