
读书笔记
文章平均质量分 73
秋名山山妖
17级学生....第一站MT,第二站KS
(博文个人向,侵删,QQ1211860972)
展开
-
Redux-state学习笔记
Redux应用执行过程中的任何一个时刻本质上都是该时刻的应用state的反映。设计state时,最重要的是记住一句话:像设计数据库一样设计state。把state看作一个数据库,state中的每一部分状态看作数据库中的一张表,状态中的每一个字段对应表的一个字段。设计一个数据库应该遵循以下三个原则:数据按照领域分类存储在不同的表中,不同的表中存储的列数据不能重复;表中每一列的数据都依赖于这张表的主键;表中除了主键外,其他列之间不能有直接的依赖关系;对应的设计state需要遵循的原则:把整原创 2021-03-06 14:58:35 · 300 阅读 · 0 评论 -
React入门 Part10
简介React主要的关注点是如何创建可复用的视图层组件,对于组件间的数据传递和状态管理并没有给出很好的解决方案。基本概念Redux的主要思想就是描述应用的状态和根据action更新,Redux通过提供一系列的API将这一思想的落地实施进行标准化和规范化。三大原则唯一数据源Redux应用只维护一个全局的状态对象,存储在Redux的store中。唯一数据源是一种集中式管理应用状态的方式,便于监控任意时刻应用的状态和调试应用,减少出错的可能性。保持应用状态只读在任何时候都不能直接修改应用原创 2021-03-06 12:02:04 · 281 阅读 · 0 评论 -
React入门 Part9
React Router基本用法真实项目中,一般需要通过不同的URL标识不同的页面,也就是存在不同页面间路由的需求。单页面应用和前端路由在传统Web应用中,浏览器会根据地址栏的URL向服务器发送一个Http请求,服务器会根据URL返回一个HTML页面。这种情况下,一个URL对应一个HTML页面,一个Web应用包含很多HTML页面,这样的应用就是多页面应用;在多页面应用中,页面路由的控制由服务端负责,这中路由方式称为后端路由。在多页面应用中,每次页面切换都需要向服务器发送一次请求,页面使用的静态资源也原创 2021-03-05 17:43:00 · 302 阅读 · 0 评论 -
React入门 Part8
虚拟DOM虚拟DOM是和真实DOM相对应的,真实DOM也就是平常说的DOM。真实DOM是对结构化文本的抽象表达。在Web环境中,就是对HTML文本的一种抽象描述,每一个HTML元素对应一个DOM节点,HTML元素的层级关系也会体现在DOM节点的层级上,所有的这些DOM节点构成一棵DOM树。在传统的前端开发中,通过调用浏览器提供的一组API直接对DOM执行增删改查操作。对DOM进行增删改查操作,每一次对DOM的修改都会引起浏览器对页面的重新布局和重新渲染,这个过程是十分耗时的。前端性能优化的一条原则:原创 2021-03-01 14:38:51 · 154 阅读 · 0 评论 -
React入门 Part7
组件与服务器通讯组件向服务器提交数据一定是由组件UI的某一事件触发的,所以只要在监听相应事件的回调函数中执行向服务器提交数据的逻辑即可。组件挂载阶段通讯componentDidMount是执行服务器通讯的最佳地方,原因如下:componentDidMount中执行服务器通讯可以保证获取到数据时,组件已经处于挂载状态,这是即使要直接操作DOM也是安全的,而componentWillMount是无法保证的;当组件在服务器端渲染时,componentWillMount会被调用两次,一次是在服务器端,另原创 2021-02-27 18:10:17 · 156 阅读 · 0 评论 -
React入门 Part6
设计合适的State组件state必须能够代表一个组件UI呈现的完整状态集,即组件的任何UI改变都可以从state的变化中反映出来;同时,state还必须代表一个组件UI呈现的最小状态集,即state中的所有状态都用于反映组件UI的变化,没有任何多余的状态,也不应该存在通过其他状态计算而来的中间状态。state所代表的一个组件UI呈现的完整状态集又可以分为两类数据:用作渲染组件时用到的数据的来源;用于组件UI展现形式的判断依据;示例代码:import React from 'react';原创 2021-02-24 18:12:34 · 116 阅读 · 0 评论 -
React入门 Part5
Render方法返回类型render方法既可以返回一个元素,也可以返回一个数组或者字符串。返回数组示例代码:import React from 'react'class ListComponent extends React.Component { render() { return([ <li key="A">A</li>, <li key="B">B</li>,原创 2021-02-24 16:23:04 · 170 阅读 · 0 评论 -
React入门 Part4
列表和Keys在React中使用列表,应该为列表中的每一个元素添加一个名为key的属性(不添加也可以,但是会有提示建议添加)。当列表数据发生变化时,React就可以通过key知道哪些元素发生了变化,从而只重新加载发生变化的元素,以提高渲染效率。可以使用元素的索引(index)作为元素的key值,但是这样造成的问题是,如果元素发生了重排则会导致元素的索引发生变化,这样不利于React的渲染优化。示例代码:import React from 'react'import PostItem from '原创 2021-02-23 22:34:21 · 170 阅读 · 0 评论 -
React入门 Part3
组件生命周期在React中,通常一个组件的生命周期可以分为三个阶段:挂载阶段;更新阶段;卸载阶段;挂载阶段这个阶段组件被创建、执行初始化并被加载到DOM中,完成组件的第一渲染。依次调用到的生命周期函数有:constructor此方法是ES 6 class的构造方法,组件被创建时,会首先调用此方法。这个方法接受一个props参数,props参数是从父组件传入的属性对象,如果父组件中没有传入属性而组件自身又定义了默认属性,那么这个props属性指向的就是组件的默认属性。使用此方法时原创 2021-02-23 17:08:29 · 121 阅读 · 0 评论 -
React入门 Part2
组件组件是React的核心概念,是React应用程序的基石。组件将应用的UI拆分成独立的、可复用的模块,React应用程序正是由一个个组件搭建而成的。定义一个组件有两种方法:使用ES6 class (类组件)使用函数(函数组件)组件定义使用class定义组件使用class定义组件需要满足的两个条件:class继承自React.Component;class内部必须定义render方法,render方法返回代表该组件UI的React元素;在使用class定义类组件后,需要使用exp原创 2021-02-15 17:38:44 · 146 阅读 · 0 评论 -
React入门 Part1
JSXJSX是一种用于描述UI的JavaScript扩展语法,React使用这种语法描述组件的UI。JSX语法对使用React来说并不是必须的,实际上,JSX语法知识React.createElement(componet, props, …children)的语法糖,所有的JSX语法最终都会转换成这个方法的调用。JSX语法基本语法JSX基本语法和XML语法相同,都是使用成对的标签构成一个树状结构的数据。示例代码:import React from 'react';const TestEl原创 2021-02-15 10:54:42 · 194 阅读 · 1 评论 -
Java——初探JVM
JVM的概念虚拟机是指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。JVM是指Java虚拟机。JVM使用软件模拟Java字节码的指令集。JVM规范JVM需要对Java Library提供以下支持:反射 java.lang.reflect;ClassLoader;初始化class和interface;安全相关java.security;多线程;...原创 2020-03-31 15:42:41 · 782 阅读 · 0 评论 -
Thinking In Java——注解读书笔记及摘录
基本语法注解为我们在代码中添加信息提供了一种形式化的方式,使我们在稍后某一个时刻非常方便地使用这些数据。定义注解定义注解时,会需要一些元注解。@Target用来定义该注解用于什么地方。@Retention用来定义该注解在哪一个级别使用,在源代码中(SOURCE)、类文件中(CLASS)或者运行时(RUNTIME)。在注解中,一般会包含一些元素以表示某些值。当分析处理注解时,程序或工具可...原创 2020-03-31 14:11:39 · 196 阅读 · 0 评论 -
Thinking In Java——类型信息读书笔记及摘录
运行时类型信息使得你可以在程序运行时发现和使用类型信息。在Java中主要有两种方法让我们在运行时识别对象和类的信息:第一种是“传统的”RTTI,它假定我们在编译时已经知道了所有的类型;另一种是“反射”机制,它允许我们在运行时发现和使用类的信息。为什么需要RTTI?面向对象编程中基本的目的是:让代码只操纵对基类的引用。这样,如果添加一个新类来扩展程序,就不会影响到原来的代码。示例代码:ab...原创 2020-02-17 16:28:57 · 244 阅读 · 0 评论 -
Thinking In Java—— I/O系统读书笔记及摘录
File类目录列表器假设我们想查看一个目录列表,可以使用两种方法来使用File对象。如果我们调用不带参数的list()方法,便可以获得此File对象包含的全部列表。然而,如果我们想获得一个受限列表,假如,想获得所有扩展名为.java的文件,那么我们就要用到“目录过滤器”,这个类会告诉我们怎样显示符合条件的File对象。DirFilter类实现了FilenameFilter接口。而DirFil...原创 2020-01-29 11:37:38 · 395 阅读 · 0 评论 -
Thinking In Java——初始化与清理读书笔记及摘录
使用构造器确保初始化从概念上讲,“初始化”与“创建”是彼此独立的。在Java中“初始化”和“创建”是绑定在一起的;构造器是一种特殊类型的方法,因为它没有返回值。这与返回值为空(void)明显不同。对于空返回值,尽管方法本身不会自动返回什么,但是仍可选择让它返回别的东西。构造器则不会返回任何东西,虽然new表达式确实是返回对新建对象的引用。清理:终结处理和垃圾回收在c++中,对象一定会...原创 2019-11-16 21:52:57 · 247 阅读 · 2 评论 -
Thinking In Java ——并发读书笔记及摘录
基本的线程机制Thread类多线程程序运行的结果可能一次与另一次的运行结果是不一样的,因为线程调度机制是非确定性的。每个Thread都”注册“了它自己,因此确实有一个对它的引用,而且在它的任务退出其run()并死亡之前,垃圾回收器无法清除它。一个线程会创建一个单独的执行线程,在对start()的调用完成之后,它仍旧会存在。使用Executor假如现在有大量的线程,他们的运行都将使...原创 2019-11-03 18:29:28 · 364 阅读 · 0 评论 -
Java 线程间通讯信号的错失
起因看《Thinking in Java》的过程中,在手搓第21.5.4节的 吐司BlockingQueue章节的代码时,不巧将代码敲错,从而发现了通讯信号的错失,个人认为比前一节信号错失的例子更直观(可能理解错误)。代码Toast.java/** * @program: Demo * @description: BlockingQueueDemo * @author: 郑畅道 *...原创 2019-09-17 20:19:15 · 195 阅读 · 0 评论