|
|
async
函数返回的一个 Promise
, 调用耗时函数前面加 await
关键字,返回成功的值,可以使用 try..catch
来进行捕获错误。上面的代码可以模拟一次请求的过程,最基本用法差不多都包括了
|
|
async
函数返回的一个 Promise
, 调用耗时函数前面加 await
关键字,返回成功的值,可以使用 try..catch
来进行捕获错误。上面的代码可以模拟一次请求的过程,最基本用法差不多都包括了
Reducer
:为了描述 action
如何改变 state tree
。 输入 action
和 state
,一般根据 action
的 type
进行区分,然后处理,改变 state tree
。
最近公司的项目要进行页面间跳转的重构,首先项目是单 Activity
+ 多 Fragment
的结构,因为是电商的项目,所以涉及到很多 H5 , Native
和 React Native
页面之间的交互与跳转,这篇不是介绍两者之间是如何进行通信的,而是当 H5 或者外部分享的链接打开后传递过来 Uri
要解析跳转到 Native
的页面的处理。当然各个页面的 Host
是提前统一定义好的,具体的做法这里也不说了,也没什么难点。原来的写法是都放到一个 Util
类里面,各种 Switch
Case
来进行分支判断,当项目越来越大维护起来十分的困难,而且本身 Native
的页面之间还有一套跳转的逻辑,同时维护两套的代价是很大的,所有希望将项目重构一下,统一两端的处理逻辑,就产生了下面的这个路由结构。
在Component
中的state
相当于组件内的本地变量,用于储存view的本地变化
props
中存储数据, props
属于readOnly的常量dic
##关于Retrofit
这是一个最近很火的网络请求库,官网在这官网,当然这也是一个开源的项目GitHub地址。可能你对这个不是很熟悉,但是说起他的兄弟,okhttp估计就比较熟悉了,还有大名鼎鼎的依赖注入dagger和图片加载库picasso还有检查内存泄露的LeakCanary都是出自Square公司。当然这只是在JAVA和Android端,在js和Python上也有很棒的项目,有兴趣就自己看了,扯远了。。
最近这一周空余的时间比较多,然后去重构了一个公司项目里的一个个人中心的页面,原来使用了ListView
再加上addHead
的方式,然后动态的去控制Head
的高度去实现嵌套滑动的效果,因为我的模拟器没有跑起来,所以也没有去录下个GIF来,因为这篇主要说一下CoordinatorLayout
的处理嵌套滑动的原理,没有效果图也影响不大。
#Canvas
##canvas简介
每个canvas都有bitmap为其保存像素,canvas有两个构造函数,无参函数和一个bitmap参数的函数,Bitmap bitmap = Bitmap.createBitmap(100, 100, Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap);
这样就创建了一个canvas对象,Android推荐使用有参函数。其实无参和有参数的构造函数都是需要创建一个bitmap,无参会默认创建一个。一个canvas需要一个bitmap来保存像素信息,当然也是可以没有bitmap,但是画的东西没有地方保存,也就没有意义。
###扯淡
之所以写这篇是因为看到别人写的APP都很酷炫,了解到之后发现5.0之后的动画丰富了那么多,特别是共享元素和圆形展开那个(不知道是不是这么叫的)特别酷,就去了解了一下。再加上我最近才上的5.0,终于有真机可以进行调试了,看到动画在自己手机上运行,还是挺有成就感的😂。
写一些看书的笔记
堆栈就是平时所说的栈,位于通用的ROM中,从堆栈指针从处理器那里获得直接支持。堆栈的指针向下移动,分配新的内存,向上移动,释放内存。在创建程序时,系统必须知道存储在盾战中所有的项目的确切生命周期,以便赏析移动堆栈的指针。这一约束限制了程序的灵活性,所以虽然某些JAVA数据存储在堆栈中–特别是对象引用,但是JAVA对象并不存储其中(然而我并不怎么理解。。)。
堆是一种通用的内存池,也是位于RAM中,用于存放所有的JAVA对象。堆对于栈的好处就是:编译器不需要知道存储的数据在堆里存货多长时间。当需要一个对象时,只需要去new,当执行这个代码会自动在堆内进行储存分配。但是用堆进行存储分配和清理可能比用栈分配需要更多的时间。