如何为四川地区寻找专业的品牌网站建设工作室和网络推广服务?

摘要:品牌网站建设工作室,四川网络推广推广机构,安徽seo人员,青海城乡建设网站前言 我之前总结逻辑重用的时候,就一直在思考一个问题。 对于逻辑复用,render props 和 高阶组
品牌网站建设工作室,四川网络推广推广机构,安徽seo人员,青海城乡建设网站前言 我之前总结逻辑重用的时候#xff0c;就一直在思考一个问题。 对于逻辑复用#xff0c;render props 和 高阶组件都可以实现#xff0c;同样官方说 Hooks 也可以实现#xff0c;且还是在不增加额外的组件的情况下。 但是我在项目代码中#xff0c;没有找到自定义 …前言 我之前总结逻辑重用的时候就一直在思考一个问题。 对于逻辑复用render props 和 高阶组件都可以实现同样官方说 Hooks 也可以实现且还是在不增加额外的组件的情况下。 但是我在项目代码中没有找到自定义 Hooks 的身影自己也很少写。所以是为什么呢 遇到问题表示查漏补缺的机会来了。 遇到技术点先问几个为什么 偶尔我会先问自己几个为什么然后去寻找答案。带着明确的目标不容易漏掉重要的讯息。 1.什么是自定义 Hooks?很难实现吗 2.自定义 Hooks 和普通函数有什么区别 3.如何创建一个自定义 Hook? 4.为什么需要自定义 Hooks哪些场景会用到 5.为什么我好像平时用不到 自定义 Hooks 很难吗 自定义 hooks可以看做是 React Hooks 的之外的自由延伸。本质上还是 JavaScript 函数。主要用途是实现逻辑重用。 React Hooks、函数、逻辑重用根据这些关键字观察实现自定义 Hooks 应该不是很难。 自定义 Hooks 和普通函数有什么区别 看了关于自定义 Hooks 的介绍我冒出来了第二个小问号 这跟普通的逻辑复用函数有什么区别呢 于是我认真阅读了React的官方文档发现主要有两点区分 名字应该始终以 use 开头。在自定义 Hook 中调用其他 Hook。 如何创建一个自定义 Hook? 因为Hook 本质是 JavaScript 函数所以创建自定义 Hook其实就是声明一个名字以 use 开头的函数。 useDateRange 这个自定义 Hook 的过程算是意外惊喜我在看完官方的例子之后一直在想我实际开发中有哪些部分可以通过自定义 Hook实现逻辑的重用。 然后意外发现了项目中存在的可优化空间后续会陆续产出优化的经验。 这里我先以项目中常出现的日期选择器为例演示一下创建自定义 Hook 的全过程。 自定义 Hook 介绍 当前的需求如下 日期选择器需要设置可选日期范围超出1天~10天的范围不可选择。选择某个日期之后需要计算跟当天日期相差的天数并回显到页面上。 注日期选择器使用的 antd 提供的组件所有的参数均可以在官网查看。 UI 效果 可选日期效果 相差天数回显 可复用逻辑提取 可复用的逻辑主要包括三个部分日期选择器的可选限制、时间发生变化的回调函数、相差天数变量。 日期选择器的可选限制 moment.js 的 add 方法可以计算指定时间之后或之前的某个时间。结合 startOf 方法和 endOf 方法使用可以确定可选范围的起始日期。 时间发生变化的回调函数 当选定日期的时候回调函数会返回选中的日期。 相差天数 通过时间回调函数拿到当前选择的日期使用 moment.js 的 diff 方法与今天的日期做比较。diff 方法的第二个参数决定差值的度量单位day表示天数。
阅读全文