优雅通过HttpClientFactory使用HttpClient

本文主要讲解如何优雅的在 .NET CORE 中使用 HttpClient ,对比了下 Framework 和 Core 中的 Http 客户端。

提供了几个封装 HttpClient 的思路和经验。

看完此文,基本可以自行封装一个客户端

HttpClient 日常使用及坑点:

在C#中,平时我们在使用 HttpClient 的时候,会将 HttpClient 包裹在 using 内部进行声明和初始化,如:

在.net core中使用配置文件的几个示例和方法

本文基于 .net core 2.2(更新.NET6 示例)

主要包含的示例:

  • 通过DI进行使用配置文件

    • 如何在 ASP.NET 中使用配置文件
  • 直接硬编码使用配置文件

    • 如何在控制台中使用配置文件

示例:ASP.NET MVC

asp.net mvc已经内部实现了对配置appsettings.json文件的使用,builder默认支持热更新。

使用示例:

假设appsettings.json内容为:

1
2
3
4
5
6
7
8
{
"Logging": {
"LogLevel": {
"Default": "Warning"
}
},
"AllowedHosts": "*"
}
  1. 新建一个跟appsettings.json结构保持一致的类,如:

localStorage-cookie-sessionStorage

localStorage 与 cookie :

localStorage 中一般浏览器支持的是 5M大小,在不同浏览器中 localStorage 会有所不同。

  • cookie 中每条 cookie 的存储空间为 4K
  • 优点:拓展了 cookie 的 4k 限制, 可以将第一次请求的数据直接存储到本地,但只有在高版本的浏览器中才支持。

localStorage 与 sessionStorage :

  • 唯一区别就是 localStorage 属于永久性存储,而 sessionStorage 属于当会话结束的时候,sessionStorage 中的键值对就会被清空。

使用

使用前先判断浏览器是否支持 localStorage 这个属性:

React 生命周期函数深入浅出

本篇博文基于 React 16.5.2

吐槽:

作为一个后端开发,15 年开始关注大前端发展趋势,于 17 年去线下听了场前端开发会议,那个时候 Vue2.0 刚出没多久,就被那快速构建页面给吸引了。最早重返前端还是大半年前,新项目用vue写了几个功能页面,发现现在写前端是真挺舒服,尤其是对于后端人员来说(排除掉 CSS ),快速入门并上手不是什么问题。

至于为什么最终选择了 react 而非 vue ?是因为当时对 react 和 vue 及 RN 和 weex 做了番调研对比,鉴于 weex 的不给力,及后期 react 和 vue 学习成本差不多,但 react 的社区更为活跃,外加发起者背景,就毅然选择了 react 。(我个人是通一精百的支持者,所以对于 react 的理念(learn once,write anywhere),是很赞成的。而 weex 的理念 (write once,run anywhere) 虽然很吸引人,但时下个人觉得技术并未达到此程度,配置的复杂度及大量的轮子需造,难以满足大型项目的要求。包括目前 JD 推出的 Taro,个人目前持观望态度,等到 react 这块应用到项目之后,再码一波 Taro 实际调研一番)。

接触 React 的时候已经是 React 16.3 ,不禁感慨前端发展至今,越有后端的趋势。前后花了3个多月的时间过了一遍 webpack 4, npm , react ,在公司内部做了几场培训,发现了其中的一些不协调,但随着版本的迭代,这些不协调也依次在被更正。(看 React 17 的更新内容,原本一些摸棱两可的方法、属性元素命名均会得到改善:)

正文

本篇博文会对 React 16.5.2 中的常用生命周期函数做一些翻译、讲解说明及发表一些个人的理解和看法,如有错误、歧义之处,还望大家不吝啬指出,互相交流:)

开篇借用官方提供的生命周期函数图:(虽然是 React 16.4 的,但同样适用于 16.5 版本)

部门内部培训 react 系列讲义一:React 入门

React 入门,based on React.16.4.2

本次教程基于环境、使用工具以及版本:

  • nodejs:8.11.3

  • react:16.4.2

  • npm:6.2.0

  • SPA(单页应用)

  • create-react-app:2.0.0