自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

curry_zhao的博客

编程是一门艺术 公众号:风已住

  • 博客(298)
  • 收藏
  • 关注

原创 钉钉微应用H5,从IDE调取免登接口,报错

如果本地调试开发可以使用微应用本地开发工具,执行以下命令,安装DingTalk-Design-CLI。钉钉IDE不支持JSAPI的接口调取。

2023-07-17 16:19:27 202

原创 大设计原则

设计原则

2022-10-21 18:17:24 238 1

原创 产品描述逻辑

原则FABF代表特征(Features):产品在功能、技术、结构、规格、材质、工艺、款式等方面所具备的差异化特征。A代表优点(Advantages):基于这特征,产品所产生的独创性优点或比竞品更好的效果。B代表好处、价值(Benefits):这一优点能给顾客带来何种具体的好处。...

2022-03-23 11:00:15 769

原创 react setState更新后的数据怎么取

setState是异步更新。若想及时的拿到更新后的数据。这里提供两种方法可以通过useEffect获取:function ProductPage({ productId }) { const [product, setProduct] = useState(null); useEffect(() => { // 把这个函数移动到 effect 内部后,我们可以清楚地看到它用到的值。 async function fetchProduct() { const r

2022-01-17 22:46:37 1866

原创 WebGl、Threejs的初步学习

WebGL 使得在支持HTML 的 canvas 标签的浏览器中,不需要安装任何插件,便可以使用基于 OpenGL ES 2.0 的 API 在 canvas 中进行2D和3D渲染。WebGL程序包括用 JavaScript 写的控制代码,以及在图形处理单元(GPU, Graphics Processing Unit)中执行的着色代码(GLSL,注:GLSL为OpenGL着色语言)。WebGL 元素可以和其他 HTML 元素混合使用,并且可以和网页其他部分或者网页背景结合起来。步骤:初始化WebG.

2022-01-06 16:51:59 1183 1

原创 react项目样式reset,一些思考

项目的结构千变万化,万变不离其宗。初入手react,觉得react甚为麻烦,用了一段时间之后,才体会到其中的妙处。vue是很清晰的数据和dom分离,react的JSX让一些操作更方便。在项目的结构上,一定要思考什么是公共的组件,如何抽取,如何封装。很多时候,开发的时候,很容易出现的一个问题,就是需要什么组件就开始编写一个很复杂的组件,比如说,封装一个chart图表,页面中展示的有一些其他标题什么的,做的时候就直接封装进去,后期再有新的标题样式就不敢再维护了。组件的封装应该是有层级的,从基础的开始,一层

2021-12-10 21:00:00 516

原创 DoH和DoT

DoH (DNS over HTTPS)即使用安全的 HTTPS 协议运行 DNS ,主要目的是增强用户的安全性和隐私性。通过使用加密的 HTTPS 连接,第三方将不再影响或监视解析过程。因此,欺诈者将无法查看请求的 URL 并对其进行更改。如果使用了基于 HTTPS 的 DNS ,数据在传输过程中发生丢失时,DoH 中的传输控制协议(TCP)会做出更快的反应。除了基于 HTTPS 的 DNS 外,目前还有另一种用于保护域名系统的技术:基于 TLS 的 DNS(DoT)。这两个协议看起来很相似,它们也都.

2021-12-06 09:39:14 2523

原创 网络、域名、DNS、A记录以及MX记录的基本概念

针对任何一个有效的域名,都应该有一个该域名的权威域名服务器(DNS),在域名服务器中有一条或多条针对于该域名的资源记录。一条资源记录共有5项,分别是 域名(Domain_name)、生存时间(Time_to_live)、类型(Type)、类别(Class)和值(Value)。域名:是这条记录指向的域; 生存时间:指出记录的稳定性。高度稳定的信息被赋予一个很大的值,如86400(一天的秒数),变化很大的信息被赋予一个较小的值,如60(1分钟);类型:指出记录的类型,其中重要的类型有:其中最常见的记

2021-10-13 18:45:50 839

原创 react Hook学习

useState, 通过在函数组件里调用它来给组件添加一些内部state。React会在重复渲染时保留这个state。useState会返回一对值:当前状态和一个让你更新它的函数,你可以在事件处理函数中或其他一些地方调用这个函数。// 声明多个state变量function ExampleWithManyStates() { // 声明多个 state 变量! const [age, setAge] = useState(42); const [fruit, setFruit] = us.

2021-10-08 17:17:52 148

原创 React API学习

挂载当组件实例被创建并插入 DOM 中时,其生命周期调用顺序如下:constructor()static getDerivedStateFromProps()render()componentDidMount()更新当组件的 props 或 state 发生变化时会触发更新。组件更新的生命周期调用顺序如下:static getDerivedStateFromProps()shouldComponentUpdate()render()getSnapshotBeforeUpdate()c

2021-10-08 16:18:14 78

原创 一些协议总结

运行在TCP协议上的协议:HTTP(Hypertext Transfer Protocol,超文本传输协议),主要用于普通浏览。HTTPS(Hypertext Transfer Protocol over Secure Socket Layer, or HTTP over SSL,安全超文本传输协议),HTTP协议的安全版本。FTP(File Transfer Protocol,文件传输协议),由名知义,用于文件传输。POP3(Post Office Protocol, version 3,邮.

2021-09-29 17:37:12 96

原创 redux 学习之旅,初步尝试

必备知识常用react术语JSXJSX,是一个 JavaScript 的语法扩展Babel 会把 JSX 转译成一个名为React.createElement() 函数调用。State组件中的 state 包含了随时可能发生变化的数据。state 由用户自定义,它是一个普通 JavaScript 对象。永远不要直接改变 this.state,因为后续调用的 setState() 可能会替换掉你的改变。请把 this.state 看作是不可变的。Function Components

2021-09-17 15:00:22 139

原创 canvas和svg

本位为学习总结SVG可缩放矢量图形(Scalable Vector Graphics,SVG),是一种用于描述二维的矢量图形,基于 XML 的标记语言。作为一个基于文本的开放网络标准,SVG能够优雅而简洁地渲染不同大小的图形,并和CSS,DOM,JavaScript和SMIL等其他网络标准无缝衔接。本质上,SVG 相对于图像,就好比 HTML 相对于文本。SVG 图像及其相关行为被定义于 XML 文本文件之中,这意味着可以对它们进行搜索、索引、编写脚本以及压缩。此外,这也意味着可以使用任何文本编辑器

2021-08-26 20:01:11 652

原创 Unicode等各种码的汇总

解码小工具或者转码小工具,包含的种类很多。各码代表什么意思,这里做了一个归拢。目前只列几种,后期持续完善UnicodeUnicode的学名是"Universal Multiple-Octet Coded Character Set",简称为UCS。Unicode(统一码、万国码、单一码)是一种在计算机上使用的字符编码。它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求。ASCII大多数计算机采用ASCII码(美国标准信息交换码),ASCII (

2021-08-23 15:28:46 1547

原创 Event Loop

关于JS和浏览器的Event Loop一直没来得及细细总结,今天这篇文章就简单的理解一下Event Loop。JS事件循环: 按下图代码执行while (queue.waitForMessage()) { queue.processNextMessage();}queue.waitForMessage() 会同步地等待消息到达(如果当前没有任何消息等待被处理)。浏览器和JS微任务和宏任务宏队列,macrotask,也叫tasks。 一些异步任务的回调会依次进入macro task qu

2021-08-19 10:54:03 91

原创 TypeScript enum结果编译成了啥

从官网解释来看enum Enum { A}let a = Enum.A;let nameOfA = Enum[a]; // "A"编译成:var Enum;(function (Enum) { Enum[Enum["A"] = 0] = "A";})(Enum || (Enum = {}));var a = Enum.A;var nameOfA = Enum[a]; // "A"生成的代码中,枚举类型被编译成一个对象,它包含双向映射(name -> value

2021-08-04 15:18:59 778

原创 关于HTTP cookies

本文为总结性文章。HTTP Cookie是什么?答: HTTP Cookie(也叫 Web Cookie 或浏览器 Cookie)是服务器发送到用户浏览器并保存在本地的一小块数据,它会在浏览器下次向同一服务器再发起请求时被携带并发送到服务器上。怎么创建Cookie?答: 当服务器收到HTTP请求时,服务器可以在响应头里添加一个Set-Cookie选项,浏览器收到响应后通常会保存下 Cookie,之后对该服务器每一次请求中都通过 Cookie 请求头部将 Cookie 信息发送给服务器。另外,Co

2021-07-27 11:16:05 129

原创 修改element $prompt的文字样式

代码如下this.$prompt('确认重置吗? 您需要输入 <strong>重置</strong> 确认操作', '提示', { confirmButtonText: '确定', cancelButtonText: '取消', inputPattern: /^重置$/, inputErrorMessage: '请输入正确的确认信息', dangerouslyUseHTMLString: true, custo

2021-06-18 16:03:54 3649 5

原创 推荐前端使用typescript

使用ts一段时间后,推荐大家都尝试一下使用ts之后,可以深入了解许多平常注意不到的DOM细节。很多时候使用函数,并不会仔细去究查里面的一些细节定义,ts可以帮助你去完成在一些复杂的表单里面,不用再害怕来回改参数类型有一些文件修改不到,在使用了ts之后,修改完其类型,类型不对的时候,文件都会有错误,提高了开发效率使用ts 能让代码看起来更加整洁清楚,逻辑条理会很清楚,从理论上是有一些提高...

2021-04-08 18:02:59 285

原创 产品体验三个特点

别让我想别让我烦别让我等

2021-02-26 17:37:03 315

原创 为什么要抽取项目中的公共部分

一直在使用vue,在开发的过程中也合作过许多个小伙伴。但是很多初期并不会意识到‘公共’。这里说,组件和样式。业务逻辑决定着哪一部分的逻辑问题可以公共出来。这里涉及到要了解业务。但一个项目的主题色,应该是统一可控的。前端的架构不是一个团队的leader才去考虑的。每个人都应该考虑。这样才能合作出来优秀的项目经验。前几天维护项目代码就有一个很深的感触。一些公共的样式,很多同学都是在页面写了好几...

2020-04-26 11:03:48 954 1

原创 在使用插件的过程中,怎样快速提高自身编码能力

接触开发,就会接触到一些插件。这里所讲就是使用插件的感悟。在日常的开发中,作为开发人员我们应该有持续学习的意识。科学地完成使用一个插件的功能,必须经历一下几个步骤:科学的调研熟悉插件提供的api,甚至读几遍源码自己通过阅读实现调取查阅考虑是否有其他兼容性问题等等回顾插件内容,用以致学我们使用插件的时候,肯定是先经过一番调研的。这个过程很重要,带着业务需求去寻找最合适的。确定好插件...

2020-04-26 10:37:34 232

原创 前端面试

今年的金三银四,因为疫情而有所淡化。但也要时刻准备着,机会往往与风险并存。面试之前需要注意什么?按需准备技能点CSS基础多复习几遍数据结构算法要懂一些项目优化那些事须知道计算机网络基础写点开源小项目博客记录书籍类的做笔记,更有输出的阅读对你会更有影响力按需准备技能点不同的公司业务或许不同,划分出几类前端业务。用到什么应该主动去了解一下,宽度要足够。然后按照公司招聘要求,加强...

2020-04-24 11:47:27 181

原创 复杂的业务变更,前端如何维护代码

在业务需求变化比较大的项目中,我们必须考虑代码版本的问题,甚至是不能只听产品或者后端的一些片面之语。没有一成不变的需求。刚接手项目的时候,开发的是关于金额计算和展示以及优惠券使用的项目,开始的需求甚至包含一些金额随意调大小的功能,在项目经过几个人轮番接手之后,到我手里已经积累了很多不可控因素,很多话暂时放进肚子里,开始谈代码的套路。很多时候大家都一个感觉就是修改别人的代码不如重构!!!就是这个...

2019-12-20 15:15:00 754

原创 接口“串并行调用”的风险

这里的串并行是根据业务来理解的。最近优化项目,更改业务需求,发现了一个问题。在JQ项目中,出现了这样一个场景。A、B、C三个接口,A接口查询总的信息,使用A返回的code值查询B接口,B接口返回flag,用flag值加上A的部分参数一并传给C。因为C接口相当慢,就考虑B,C并行调取,这样通过了第一波测试。A接口调用加loading,没有问题,返回成功时去调取B,这里就考虑不周,通过测试发现B接...

2019-12-12 10:05:19 230 1

原创 关于项目后期优化的那些事儿(一)

在项目后期优化的时候,一般会涉及到业务需求的变动更改,也会有项目代码的优化。业务需求的更改必定会有代码的修改,这里说的就是业务需求的更改中间会遇到哪些问题。业务需求更改,也应该分为几类:增加新的需求点,例如,增加一个小的模块,展示用户的产品信息。原有需求的功能优化,例如,一些业务的校验,之前校验了,后期发现业务人员觉得不合适。原有需求的更改导致接口的更改,这里必然涉及到参数等的修改。...

2019-12-12 09:26:25 715

原创 设计模式学习(二)

学习设计模式比较难的地方在于,一遍、两遍看不懂!有时候听到一些人在讨论代码讨论编程语言,说这个语言是什么什么样的,另外一种是什么什么的,然后夸自己写的代码如何如何?我的心里不禁“呵呵呵”……怎么敢说自己的代码写的好,评判标准有下:可维护性、可读性、可扩展性、灵活性、简洁性(简单、复杂)、可复用性、可测试性。程序员读代码的能力也很重要.设计模式编码实现的基础是,面向对象编程。面向对象的四...

2019-12-03 14:24:29 107

原创 设计模式学习笔记

设计模式这个东西,说实话之前没有看懂过,而且很久一段时间才发现工作中根本没有使用过……扎心的编程之旅。设计原则SOLID 原则 -SRP 单一职责原则SOLID 原则 -OCP 开闭原则SOLID 原则 -LSP 里式替换原则SOLID 原则 -ISP 接口隔离原则SOLID 原则 -DIP 依赖倒置原则DRY 原则KISS 原则YAGNI 原则LOD 法则设计模式...

2019-11-05 15:24:08 127

原创 初次接触vue,我是怎么学习的

又到了review的时候,话不多说,这次放出,最初的学习笔记。Vue我将Vue看成了一门新得编程语言来学,基础的语法知识我认为就以下这些重点。一、数据绑定语法1、数据绑定最基础的形式是文本插值,使用 {{}} 语法(双大括号),三个大括号标签可以输出真的HTML字符串。双大括号标签也可以用在 HTML 特性 (Attributes) 内,。也可以实现单次插值绑定,{{ * msg }}。...

2019-11-05 09:33:41 481

原创 input的aotucomplete属性

JQ项目中,有很多的搜索条件,使用了大量的input,而且鼠标聚焦上去的时候,input会弹出一个面板,展示曾经的输入记录。问题来了,最近进行一个迭代的更新处理,需要将输入框转换成可搜索的下拉,进行实时搜索。这时的面板是多余的了,影响下拉框的搜索结果,鼠标聚焦到input框的时候,需要立即展示下拉结果。不美观,体验不太好。当接口和数据、防抖动作都准确无误之后,开始优化这块的展示。一般都会直接...

2019-11-04 15:02:38 1022

原创 前端页面组件使用的一些问题

组件化能够很好的解决多个页面复用的问题。最近发现构建组件的时候,还是需要考虑一下模块大小的问题的。多个页面公用一个组件的时候,会出现这样一种情况,很多种数据转换。前端的效率就浪费了很多。这时候就引出一个问题,如果后端能够意识到,前端页面可以复用,多个接口在组数据的时候,应该考虑结构和字段的一致性。前端如何能够让代码看起来简洁高大上,抛去后端返回数据结构的问题。前端可以适当的将JS分块处理。不...

2019-10-23 17:42:29 308

原创 秋月当空

秋天的旷达刘禹锡有一首诗《秋词》,每到秋天都会细细默念一遍,“自古逢秋悲寂寥,我言秋日胜春朝。晴空一鹤排云上,便引诗情到碧霄。”秋天真是值得歌颂。四季中最爱的当属秋天,硕果累累,一年之中收获的季节,最让人向往。秋天的天空看起来很高远,很澄澈。可能是秋风太过于劲猛,不只是要吹落黄花吹落树叶,这满眼的浑浊也要吹开去,留下清明。秋天的悲壮秋天很短,上连酷暑,下接寒冬。这酷暑和寒冷交替的短暂,...

2019-10-18 15:14:57 246

原创 input使用type=“hidden”隐藏域中值丢失的问题

使用input封装了一个下拉选择,在两个页面进行交互的时候,发现高版本的谷歌浏览器丢失掉了,input的value值。 刚开始找原因的时候,考虑到浏览器兼容性问题,把封装的函数还有各个点都过了一遍,没有解决问题。也查找了一些方法,但都是不对。后面就扩展到页面跳转导致值得丢失,使用重定向页面后,hidden是不能用的。 正确的做法是使用,type=‘text’ style=“display:...

2019-08-08 18:31:48 3131 1

原创 Vue :Error in nextTick: "Error: if there's nested data, rowKey is required."

用到的组件时table,使用树结构时,数据里面需要有id

2019-07-26 17:13:22 1235

原创 阶段总结

很长一段时间,忙于开发,就忽略了总结这些东西。最近一段时间感触还是颇多的,关于项目一类,比较复杂的业务,或许用不到更高级的技术,业务本身就有难度,只是简单实现基本操作,很多项目中可以优化的地方都忽略了,在项目没有要求的情况下,如何自己要求自己高效率实现优化技能,这是我最近一直致力于要做的事情,实施了第一步,目测还是比较满意的。经过一段时间,人的经历就会变得特别有限,最近开通了自己的公众账号,风...

2019-07-20 10:02:18 100

原创 管理项目为什么我更喜欢EasyPm

公司进入一段比较忙的时候,对于开发人员和项目管理人员来说都是挑战。也接触过其他一些类似的团队管理的软件,但总觉得没有EasyPm清爽,无论是从开发者的角度出发还是从管理者的角度出发。为什么这样说?对于开发者而言,每天做什么以及每天完成了多少,能提高不少开发效率。很少有某种软件能像EasyPm那样明了的任务展示,看板里的内容,以及内容的优先级都可以在里面标注出来,日期也可以规划。用的时候体验感...

2019-07-13 15:07:22 175

原创 实现小功能,输入文本,输入框可改变大小,且可记录数字

textarea并不能随着输入自动扩展div的宽度,这里就直接使用div来实现这个简单的功能<div onInput="textInputFuc" contenteditable="true" class="remark"></div><label class="textNumber">0/200</label>.remark:focus {...

2019-06-25 17:34:26 618

原创 使用vue-cli3引入外部js报错的问题

最近做的一个移动端,需要使用mui框架,在引入的时候,按照平常的语法,发现总是报错,Uncaught SyntaxError: Unexpected token &lt;解决办法,将引入的js文件夹,与index.html,放到同一级。...

2019-02-28 10:06:32 7240 6

原创 vue组件化项目应用的问题

最近一周都在回顾年前的项目,其中的一个用vue做的项目,发现了很多可以优化的问题组件化的拆分,记得之前刚入职工作的时候,部门老大给我们布置了一个任务,就是拆分页面,当时觉得有什么还拆分的,不就是直接写?来到北京之后,恰巧是公司业务比较急的时候,拿到需求之后,看到页面就直接去写了,因为业务的需要,当时分的组件现在看起来是有很多地方可以优化的数据的管理,js可以将数据逻辑模块化出来,这方面跟随着...

2019-02-18 11:07:36 249

原创 阶段工作回顾总结

忙忙碌碌又一段的开发时光。最近的工作涉及到的表单特别多,一页都有很多的字段,有很多地方需要改进节奏感有些混乱,导致出现许多小问题控制代码版本的时候没有用到很好的方法开发过程中,与后端的配合存在一点问题,因为要与别的团队合作,中间的开发涉及到一些接口对接,没有文档,中间确实痛苦了不少一遍维护老项目的新迭代,一边开发,一边配合测试,中间抽取公共文件自己做了很多无用功上传图片的问题,以及图片...

2019-01-25 11:36:47 854 3

空空如也

空空如也

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

TA关注的人

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