GT

Angular 从入坑到挖坑

余生颓废 提交于 2020-11-26 09:32:17
https://juejin.im/post/5e5faa45f265da57697114dc Overview angular 入坑记录的笔记第三篇,介绍 angular 中表单控件的相关概念,了解如何在 angular 中创建一个表单,以及如何针对表单控件进行数据校验。 对应官方文档地址: Angular 表单简介 响应式表单 模板驱动表单 表单验证 配套代码地址: angular-practice/src/forms-overview Contents Angular 从入坑到弃坑 - Angular 使用入门 Angular 从入坑到挖坑 - 组件食用指南 Angular 从入坑到挖坑 - 表单控件概览 Knowledge Graph Step by Step 表单简介 用来处理用户的输入,通过从视图中捕获用户的输入事件、验证用户输入的是否满足条件,从而创建出表单模型修改组件中的数据模型,达到获取用户输入数据的功能 模板驱动表单 响应式表单 建立表单 由组件隐式的创建表单控件实例 在组件类中进行显示的创建控件实例 表单验证 指令 函数 在表单数据发生变更时,模板驱动表单通过修改 ngModel 绑定的数据模型来完成数据更新,而响应式表单在表单数据发生变更时,FormControl 实例会返回一个新的数据模型,而不是直接修改原来的数据模型 模板驱动表单 通过使用表单的专属指令

【你应该掌握的】深入浅出typescript

倾然丶 夕夏残阳落幕 提交于 2020-11-26 04:22:43
https://juejin.im/post/5e71b8976fb9a07c9c6a7453 团队: skFeTeam  本文作者:高扬 介绍 TypeScript 是一种由微软开发的开源、跨平台的编程语言。它是JavaScript的超集,最终会被编译为JavaScript代码。 TypeScript可以解决JavaScript弱类型和没有命名空间,难以模块化的问题,同时也增强了代码的可读性,在团队协作和大型项目中体现出更大的优势。 本文将从“基础用法、高阶用法、模块、react项目实践中的应用”四个方向展开文章,方便大家理解,都会备注列子、codesandbox上的远程代码。 基础用法 1.变量类型 代码示例 src/components/baseVar.tsx TypeScript提供与JavaScript几乎相同的数据类型( 布尔值boolean,字符串string,数字number,数组[],元组 ),此外还提供了 枚举enum 类型。 当不确定变量的数据类型或者数据类型会在代码运行过程中变化时,使用 any 来标记这些变量,使它们通过编译阶段的检查。 object 表示原始类型以外的类型,即number,string,boolean,symbol,null,undefined以外的类型。 void 用于表示没有任何类型,通常用于方法没有返回值时

【你应该掌握的】深入浅出typescript

╄→гoц情女王★ 提交于 2020-11-26 04:09:51
https://juejin.im/post/5e71b8976fb9a07c9c6a7453 团队: skFeTeam  本文作者:高扬 介绍 TypeScript 是一种由微软开发的开源、跨平台的编程语言。它是JavaScript的超集,最终会被编译为JavaScript代码。 TypeScript可以解决JavaScript弱类型和没有命名空间,难以模块化的问题,同时也增强了代码的可读性,在团队协作和大型项目中体现出更大的优势。 本文将从“基础用法、高阶用法、模块、react项目实践中的应用”四个方向展开文章,方便大家理解,都会备注列子、codesandbox上的远程代码。 基础用法 1.变量类型 代码示例 src/components/baseVar.tsx TypeScript提供与JavaScript几乎相同的数据类型( 布尔值boolean,字符串string,数字number,数组[],元组 ),此外还提供了 枚举enum 类型。 当不确定变量的数据类型或者数据类型会在代码运行过程中变化时,使用 any 来标记这些变量,使它们通过编译阶段的检查。 object 表示原始类型以外的类型,即number,string,boolean,symbol,null,undefined以外的类型。 void 用于表示没有任何类型,通常用于方法没有返回值时

新来个技术总监,禁止我们使用Lombok!

允我心安 提交于 2020-11-25 18:48:09
https://yq.aliyun.com/articles/744687 云栖号: https://yqh.aliyun.com 第一手的上云资讯,不同行业精选的上云企业案例库,基于众多成功案例萃取而成的最佳实践,助力您上云决策! 这位技术总监对技术细节很看重,一来公司之后就推出了很多"政策",比如定义了很多开发规范、日志规范、甚至是要求大家统一使用某一款 IDE。 但是这些都不是我这个学弟和我吐槽的点,他真正和我吐槽的是,他很不能理解,这位新来的技术总监竟然禁止公司内部所有开发使用 Lombok。但是又没给出十分明确的,可以让人信服的理由。 于是他来找我聊天,问我这个要求到底是否合理。关于这个事情,我认为这位技术总监的出发点是好的,但是做法未免有些极端。 之所以说出发点是好的,是因为使用 Lombok 确实会带来很多问题,而且我个人在工作中也基本不主动使用。 之所以说不主动使用,那是因为有些同事的代码还是使用了的,所以我也被迫的要安装 Lombok 的插件。 既然聊到这个话题,就简单说说我的一些看法。 Lombok 有什么好处? Lombok 是一款非常实用 Java 工具,可用来帮助开发人员消除 Java 的冗长代码,尤其是对于简单的 Java 对象(POJO)。它通过注释实现这一目的。 如果大家对于 Lombok 比较了解的话,可以先跳过这一段,直接往后看

乘法逆元(模板)

六眼飞鱼酱① 提交于 2020-11-23 11:34:50
https://www.cnblogs.com/qdu-lkc/p/12262827.html 乘法逆元定义: b存在乘法逆元的充要条件是b与模数m互质 原因:b * x ≡ 1 (mod m) 如果b和m不互质,则 b * x肯定是m的倍数,b * x%m=0 所以b%m==0 ,b不存在乘法逆元 1.当n为质数时,可以用快速幂求逆元:   a / b(整除) ≡ a * x (mod m)   两边同乘b可得 a ≡ a * b * x (mod m) -> 1 ≡ b * x (mod m)   同 b * x ≡ 1 (mod m)    由费马小定理可知,当m为质数时: b ^ (m - 1) ≡ 1 (mod m) 拆一个b出来可得 b * b ^ (m - 2) ≡ 1 (mod m)   所以当n为质数时,b的乘法逆元 x = b ^ (m - 2)%m 求a的乘法逆元: import java.util.* ; public class Main{ static long quick_pow( long a, long b, long c){ long res=1 ; while (b>0 ){ if ((b&1)==1) res=res*a% c; a =a*a% c; b >>=1 ; } return res; } public static void

C#中Equals和GetHashCode

北战南征 提交于 2020-11-22 06:43:37
https://www.cnblogs.com/yyfh/archive/2020/01/31/12245916.html Equals和GetHashCode Equals每个实现都必须遵循以下约定: 自反性(Reflexive): x.equals(x)必须返回true. 对称性(Symmetric): x.equals(y)为true时,y.equals(x)也为true. 传递性(Transitive): 对于任何非null的应用值x,y和z,如果x.equals(y)返回true,并且y.equals(z)也返回true,那么x.equals(z)必须返回true. 一致性(Consistence): 如果多次将对象与另一个对象比较,结果始终相同.只要未修改x和y的应用对象,x.equals(y)连续调用x.equals(y)返回相同的值l. 非null(Non-null): 如果x不是null,y为null,则x.equals(y)必须为false GetHashCode: 两个相等对象根据equals方法比较时相等,那么这两个对象中任意一个对象的hashcode方法都必须产生同样的整数。 在我们未对对象进行修改时,多次调用hashcode使用返回同一个整数.在同一个应用程序中多次执行,每次执行返回的整数可以不一致. 如果两个对象根据equals方法比较不相等时

乘法逆元(模板)

淺唱寂寞╮ 提交于 2020-11-15 06:58:44
https://www.cnblogs.com/qdu-lkc/p/12262827.html 乘法逆元定义: b存在乘法逆元的充要条件是b与模数m互质 原因:b * x ≡ 1 (mod m) 如果b和m不互质,则 b * x肯定是m的倍数,b * x%m=0 所以b%m==0 ,b不存在乘法逆元 1.当n为质数时,可以用快速幂求逆元:   a / b(整除) ≡ a * x (mod m)   两边同乘b可得 a ≡ a * b * x (mod m) -> 1 ≡ b * x (mod m)   同 b * x ≡ 1 (mod m)    由费马小定理可知,当m为质数时: b ^ (m - 1) ≡ 1 (mod m) 拆一个b出来可得 b * b ^ (m - 2) ≡ 1 (mod m)   所以当n为质数时,b的乘法逆元 x = b ^ (m - 2)%m 求a的乘法逆元: import java.util.* ; public class Main{ static long quick_pow( long a, long b, long c){ long res=1 ; while (b>0 ){ if ((b&1)==1) res=res*a% c; a =a*a% c; b >>=1 ; } return res; } public static void

Flutter Widgets 之 PageView

倖福魔咒の 提交于 2020-11-10 07:52:11
https://www.cnblogs.com/mengqd/archive/2020/02/29/12381848.html 注意:无特殊说明,Flutter版本及Dart版本如下: Flutter版本: 1.12.13+hotfix.5 Dart版本: 2.7.0 基础用法 PageView控件可以实现一个“图片轮播”的效果,PageView不仅可以水平滑动也可以垂直滑动,简单用法如下: PageView( children: <Widget>[ MyPage1(), MyPage2(), MyPage3(), ], ) PageView滚动方向默认是水平,可以设置其为垂直方向: PageView( scrollDirection: Axis.vertical, ... ) PageView配合PageController可以实现非常酷炫的效果,控制每一个Page不占满, PageView( controller: PageController( viewportFraction: 0.9, ), ... ) PageController中属性 initialPage 表示当前加载第几页,默认第一页。 onPageChanged 属性是页面发生变化时的回调,用法如下: PageView( onPageChanged: (int index){ }, ... ) 无限滚动

Flutter Widgets 之 PageView

*爱你&永不变心* 提交于 2020-11-10 07:29:06
https://www.cnblogs.com/mengqd/archive/2020/02/29/12381848.html 注意:无特殊说明,Flutter版本及Dart版本如下: Flutter版本: 1.12.13+hotfix.5 Dart版本: 2.7.0 基础用法 PageView控件可以实现一个“图片轮播”的效果,PageView不仅可以水平滑动也可以垂直滑动,简单用法如下: PageView( children: <Widget>[ MyPage1(), MyPage2(), MyPage3(), ], ) PageView滚动方向默认是水平,可以设置其为垂直方向: PageView( scrollDirection: Axis.vertical, ... ) PageView配合PageController可以实现非常酷炫的效果,控制每一个Page不占满, PageView( controller: PageController( viewportFraction: 0.9, ), ... ) PageController中属性 initialPage 表示当前加载第几页,默认第一页。 onPageChanged 属性是页面发生变化时的回调,用法如下: PageView( onPageChanged: (int index){ }, ... ) 无限滚动