<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[BAOBAB_cc的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/BAOBAB_cc</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; BAOBAB_cc]]></copyright><item><title><![CDATA[Ionic 更换主题风格方案]]></title><link>https://blog.youkuaiyun.com/BAOBAB_cc/article/details/80588255</link><guid>https://blog.youkuaiyun.com/BAOBAB_cc/article/details/80588255</guid><author>BAOBAB_cc</author><pubDate>Tue, 05 Jun 2018 22:24:16 +0800</pubDate><description><![CDATA[需求

最近涉及到的一个需求是——用户可更换页面风格，因此，查了一些资料后，写一下Ionic更换主题方案

方案

动态改变根标签类名，比如亮色风格时，class=&quot;light&quot;，比如暗色风格时，class=&quot;dark&quot;

步骤

1.在 src/theme 文件夹下，新建两种不同风格 


light.theme.scss 


dark.theme.scss 


2.在切换事件发生时，动态改...]]></description><category></category></item><item><title><![CDATA[读书笔记（五）《影响力》罗伯特·西奥迪尼]]></title><link>https://blog.youkuaiyun.com/BAOBAB_cc/article/details/80156593</link><guid>https://blog.youkuaiyun.com/BAOBAB_cc/article/details/80156593</guid><author>BAOBAB_cc</author><pubDate>Tue, 01 May 2018 15:29:23 +0800</pubDate><description><![CDATA[用一句话概括这本书 
常规的认知习惯，为人类避免了很多麻烦，但同时，也带来了漏洞。而《影响力》这本书，正是通过一些基本的范例，阐述了影响力（利用漏洞）武器所带来的威力。

以下用简单的笔记记录下我对这本书的一些总结：



对比心理

汽车经销商，会在顾客掏钱买车之后才会建议顾客购买各种配件。为什么？因为当顾客买了车之后，相比之下，配件的价格就显得很低了。



互惠

为什么超市总喜欢提供“免费...]]></description><category></category></item><item><title><![CDATA[Angular学习笔记（二十七）说一说Angular的组件样式]]></title><link>https://blog.youkuaiyun.com/BAOBAB_cc/article/details/79954805</link><guid>https://blog.youkuaiyun.com/BAOBAB_cc/article/details/79954805</guid><author>BAOBAB_cc</author><pubDate>Sun, 22 Apr 2018 16:32:21 +0800</pubDate><description><![CDATA[以下所有代码的演示地址： 
戳这里 =&amp;gt; demo展示



组件样式独立

组件之间的样式并不互相影响，也就是说，在A组件编写的样式不会渲染到B组件。

app.component.html



@Component({
  selector: 'my-app',
  template: `
    &amp;lt;h1&amp;gt;我是父组件的h1&amp;lt;/h1&amp;gt;
    &amp;lt;detail...]]></description><category></category></item><item><title><![CDATA[Angular学习笔记（二十六）在angular中使用ng-bootsrtap之初体验]]></title><link>https://blog.youkuaiyun.com/BAOBAB_cc/article/details/79840480</link><guid>https://blog.youkuaiyun.com/BAOBAB_cc/article/details/79840480</guid><author>BAOBAB_cc</author><pubDate>Sun, 15 Apr 2018 14:23:43 +0800</pubDate><description><![CDATA[最近在一个angular项目中使用ng-bootstrap，初步入门，所以记录一下。

这里查看官方文档



什么是ng-bootstrap

概念：基于Angular 的 Bootstrap组件 
构架：TypeScript+bootstrap 4 CSS框架 
特点：其API在Angular是可用的，不需要第三方js



如何使用ng-bootstrap

1.全局安装ng-bootstr...]]></description><category></category></item><item><title><![CDATA[读书笔记（四）《奇特的一生》格拉宁]]></title><link>https://blog.youkuaiyun.com/BAOBAB_cc/article/details/79582375</link><guid>https://blog.youkuaiyun.com/BAOBAB_cc/article/details/79582375</guid><author>BAOBAB_cc</author><pubDate>Fri, 16 Mar 2018 16:51:57 +0800</pubDate><description><![CDATA[是否有人也和我一样，有时很想知道去年的今天自己在做着些什么事？或者说，想知道自己把时间都用在了什么地方上？有没有人想过，把时间的走向记录下来？确实有这样的人，不过他记录时间，目的不仅仅是想知道时间的走向，而是对自己的时间做出总结，并且规划未来，过好这一生。柳比歇夫是谁？柳比歇夫是《奇特的一生》中的主人公，苏联昆虫学家。而在本书中，作者的重点不在于他的学术研究，而在于他的时间统计法，以及他的生活。]]></description><category></category></item><item><title><![CDATA[使用localStorage进行跨标签页通讯]]></title><link>https://blog.youkuaiyun.com/BAOBAB_cc/article/details/79566183</link><guid>https://blog.youkuaiyun.com/BAOBAB_cc/article/details/79566183</guid><author>BAOBAB_cc</author><pubDate>Thu, 15 Mar 2018 12:27:09 +0800</pubDate><description><![CDATA[localStorage API

什么是localStorage

提起localStorage，往往还牵扯到sessionStorage，它们都是web Storage的API，表示浏览器端数据存储。而区别是，sessionStorage会随着页面的关闭而销毁，localStorage则可永久存储。

标签页间通讯

localStorage的增删改，都会触发其storage事件，通过监听这个...]]></description><category></category></item><item><title><![CDATA[Angular学习笔记（二十五）http通讯和webSocket通讯]]></title><link>https://blog.youkuaiyun.com/BAOBAB_cc/article/details/79459581</link><guid>https://blog.youkuaiyun.com/BAOBAB_cc/article/details/79459581</guid><author>BAOBAB_cc</author><pubDate>Wed, 07 Mar 2018 09:12:59 +0800</pubDate><description><![CDATA[http通讯


发送http请求    参考api文档
处理http响应
携带请求头部信息 


需要注意的是： 
get(url: string, options?: RequestOptionsArgs): Observable&amp;lt;Response&amp;gt; 
发送http请求返回的是个可观察者流，需要对其进行订阅获取相应消息。

写一个用get方法请求的demo:

stock.comp...]]></description><category></category></item><item><title><![CDATA[Angular学习笔记（二十四）表单处理之模版式表单校验]]></title><link>https://blog.youkuaiyun.com/BAOBAB_cc/article/details/79399759</link><guid>https://blog.youkuaiyun.com/BAOBAB_cc/article/details/79399759</guid><author>BAOBAB_cc</author><pubDate>Wed, 28 Feb 2018 15:24:05 +0800</pubDate><description><![CDATA[响应式表单使用校验器的方式是将其挂在构造函数中，那么，模版式表单如何使用校验器？

答案是 —— 指令



如何创建指令？

命令： ng g directive xxx



如何编写自定义校验器的指令？

import { Directive } from '@angular/core';
import { NG_VALIDATORS } from '@angular/forms';
imp...]]></description><category></category></item><item><title><![CDATA[Angular学习笔记（二十三）表单处理之显示提示消息]]></title><link>https://blog.youkuaiyun.com/BAOBAB_cc/article/details/79393156</link><guid>https://blog.youkuaiyun.com/BAOBAB_cc/article/details/79393156</guid><author>BAOBAB_cc</author><pubDate>Tue, 27 Feb 2018 23:08:14 +0800</pubDate><description><![CDATA[显示友好的错误消息

查看API： 
hasError(errorCode: string, path?: string[]): boolean。 
errorCode是返回验证errors消息为true的key值。比如required校验器的返回消息是{required:true}。 
path是当前control的name值。

&amp;lt;form [formGroup]=&quot;formGroup&quot;...]]></description><category></category></item><item><title><![CDATA[Angular学习笔记（二十二）表单处理之校验器]]></title><link>https://blog.youkuaiyun.com/BAOBAB_cc/article/details/79369633</link><guid>https://blog.youkuaiyun.com/BAOBAB_cc/article/details/79369633</guid><author>BAOBAB_cc</author><pubDate>Sun, 25 Feb 2018 16:54:39 +0800</pubDate><description><![CDATA[自定义校验器

基本语法：



xxx(params:AbstractControl):{[key:string]}:any{
   renturn null;
}


传入参数类型是AbstractControl，是FormGroup、FormControl和FormArray的共同父类，传入参数声明了校验器用于什么对象类型（前面提到的3种）上
返回值类型为任意类型，其中返回对象类型中的key...]]></description><category></category></item><item><title><![CDATA[Angular学习笔记（二十一）表单处理之响应式表单]]></title><link>https://blog.youkuaiyun.com/BAOBAB_cc/article/details/79331770</link><guid>https://blog.youkuaiyun.com/BAOBAB_cc/article/details/79331770</guid><author>BAOBAB_cc</author><pubDate>Sat, 17 Feb 2018 13:46:22 +0800</pubDate><description><![CDATA[响应式表单分2步走


使用ts编写数据模型
使用指令将数据模型与HTML连接




编写数据模型，FormModule的3个类型




  类名
  解释



  FormControl
  基本单位，保存当前值，元素校验状态以及元素是否被修改


  FormGroup
  多个FormControl集合，可代表表单的一部分或整个表单，只要有一个FormControl对象无效，都会导致F...]]></description><category></category></item><item><title><![CDATA[Angular学习笔记（二十）表单处理之模版式表单]]></title><link>https://blog.youkuaiyun.com/BAOBAB_cc/article/details/79326884</link><guid>https://blog.youkuaiyun.com/BAOBAB_cc/article/details/79326884</guid><author>BAOBAB_cc</author><pubDate>Sat, 17 Feb 2018 13:46:05 +0800</pubDate><description><![CDATA[首先，Angular提供了2种表单处理方式

一、模版式表单 
二、响应式表单



两种表单处理方式的不同点在于：

模版式表单：其数据模型是通过组件模版中的相关指令来定义，因为受限于HTML的语法，所以只适用于简单的表单场景。

响应式表单：使用TypeScript创建底层模型，运用特定的指令将模版和底层ts数据模型绑定。

在此，我们先学习模版式表单。



模版式表单指令




  指令...]]></description><category></category></item><item><title><![CDATA[读书笔记（三）《刻意练习》——安德斯·艾利克森]]></title><link>https://blog.youkuaiyun.com/BAOBAB_cc/article/details/79324847</link><guid>https://blog.youkuaiyun.com/BAOBAB_cc/article/details/79324847</guid><author>BAOBAB_cc</author><pubDate>Wed, 14 Feb 2018 13:15:27 +0800</pubDate><description><![CDATA[起始日期：180116 
读书笔记：180214

写在前面：

比起上一本书《有何有效阅读一本书》，在《刻意练习》上我花了比较多的时间。虽然都是学习法类的书籍，但是奥野宣之的风格比较轻松且中心点是——保持兴趣是阅读的第一步。而安德斯·艾利克森的风格比较严谨且富逻辑性。





天真的练习


  一旦某个人的表现达到了“可接受”的水平，并且可以做到自动化，那么，再多“练习”几年，也不会有什么进...]]></description><category></category></item><item><title><![CDATA[Angular学习笔记（十九）周期钩子之OnDestroy]]></title><link>https://blog.youkuaiyun.com/BAOBAB_cc/article/details/79282685</link><guid>https://blog.youkuaiyun.com/BAOBAB_cc/article/details/79282685</guid><author>BAOBAB_cc</author><pubDate>Thu, 08 Feb 2018 21:29:12 +0800</pubDate><description><![CDATA[OnDestory

定义：组件销毁前调用的最后一个钩子

用途：用于反订阅流，消除定时器

常在哪里出现：路由跳转时。当一个路由地址跳往另一个路由地址时，前一个路由地址对应的组件会被销毁，后一个路由对应的组件会被创建。

销毁时会触发：当应用发生变化，所有的check方法都会被调用

demo:

app.component.html



&amp;lt;a [routerLink]=&quot;['child...]]></description><category></category></item><item><title><![CDATA[Angular学习笔记（十八）周期钩子之View钩子]]></title><link>https://blog.youkuaiyun.com/BAOBAB_cc/article/details/79282548</link><guid>https://blog.youkuaiyun.com/BAOBAB_cc/article/details/79282548</guid><author>BAOBAB_cc</author><pubDate>Wed, 07 Feb 2018 17:35:10 +0800</pubDate><description><![CDATA[AfterViewInit和AfterViewChecked

定义：整个视图组装完毕时调用

注意：


AfterViewInit在AfterViewChecked之前调用
子组件的View钩子（包括AfterViewInit和AfterViewChecked）调用完毕，父组件的View钩子才调用
View钩子禁止改变视图中绑定的数据值，需放入另一个js周期中，如setTimeout


排序]]></description><category></category></item><item><title><![CDATA[Angular学习笔记（十七）父组件调用子组件数据]]></title><link>https://blog.youkuaiyun.com/BAOBAB_cc/article/details/79271346</link><guid>https://blog.youkuaiyun.com/BAOBAB_cc/article/details/79271346</guid><author>BAOBAB_cc</author><pubDate>Tue, 06 Feb 2018 16:03:51 +0800</pubDate><description><![CDATA[ViewChild

语法：@ViewChild(ChildDirective) child: ChildDirective;

其中参数： 
- 类型：组件类名 
- 字符串：包含模版本地变量的元素

demo —— 组件类名参数：

afterView.component.ts

export class AfterviewComponent implements OnInit {

  co]]></description><category></category></item><item><title><![CDATA[Angular学习笔记（十六）组件周期钩子之投影和AfterContentInit]]></title><link>https://blog.youkuaiyun.com/BAOBAB_cc/article/details/79240827</link><guid>https://blog.youkuaiyun.com/BAOBAB_cc/article/details/79240827</guid><author>BAOBAB_cc</author><pubDate>Tue, 06 Feb 2018 14:03:18 +0800</pubDate><description><![CDATA[投影

定义：在运行时动态改变模版内容，父组件主动控制子组件的显示内容。

指令：ng-content

方法：在html中，父组件中引用子组件标签的写入要显示的内容，子组件使用确定投影点。

多个投影点标识: 
匹配class名为blue的显示内容 
匹配header标签的显示内容 
匹配name属性值为red的显示内容

demo:

app.component.html

app-after]]></description><category></category></item><item><title><![CDATA[Angular学习笔记（十五）组件周期钩子之变更检测和DoCheck]]></title><link>https://blog.youkuaiyun.com/BAOBAB_cc/article/details/79234419</link><guid>https://blog.youkuaiyun.com/BAOBAB_cc/article/details/79234419</guid><author>BAOBAB_cc</author><pubDate>Fri, 02 Feb 2018 16:37:11 +0800</pubDate><description><![CDATA[变更检测


Angular的变更检测机制配合zone.js来实现，保证组建变化和页面变化同步
浏览器中任何异步事件都会触发检测机制
检测模版所有绑定属性，若改变则相应区域会被更新
需要注意的是：变更检测机制只会把组件属性的改变反应到模版上，不会改变组件值




Angular如何进行变更检测

每个组件都有属于自己的变更检测器，当任何一个变更检测器检查到变化，zone.js会根据组件的变更检测]]></description><category></category></item><item><title><![CDATA[Angular学习笔记（十四）之生命周期钩子和OnChanges]]></title><link>https://blog.youkuaiyun.com/BAOBAB_cc/article/details/79227862</link><guid>https://blog.youkuaiyun.com/BAOBAB_cc/article/details/79227862</guid><author>BAOBAB_cc</author><pubDate>Fri, 02 Feb 2018 16:31:43 +0800</pubDate><description><![CDATA[组件生命周期

先丢上一张组件生命周期钩子图 



  其中红色代表只执行一次（初始化类型的钩子），绿色代表执行多次（检测类型钩子）


钩子解释




  钩子
  解释



  constructor
  实例化对象


  ngOnchanges
  初始化输入属性


  ngOnInit
  初始化（除输入属性外的）其他属性


  ngDoCheck
  组件变更检测


  n]]></description><category></category></item><item><title><![CDATA[读书笔记（二）《好好学习》——成甲]]></title><link>https://blog.youkuaiyun.com/BAOBAB_cc/article/details/79189990</link><guid>https://blog.youkuaiyun.com/BAOBAB_cc/article/details/79189990</guid><author>BAOBAB_cc</author><pubDate>Sun, 28 Jan 2018 21:59:02 +0800</pubDate><description><![CDATA[《好好学习》这本书其实我没有详细的读过，只是看过相关的推荐信息，然后在听书频道中听过原作者讲书，对此挺有感触的，所以决定先把想法写下来。

毕竟，在《如何高效阅读一本书》中提过，keep住兴趣是阅读成长的第一步。



什么是知识？

在我们的生活中，充斥着各种各样的信息，我们有各种获取信息的渠道，比如微信公众号文章，微博简书豆瓣等等……然而，这些你所获取的信息是否能运用在你的生活上，还是说只是默]]></description><category></category></item></channel></rss>