愿你的生活每天都开出一朵花来 NHXWYJS
(1)
之前写组件都是拆成UI
和容器
…直到被告知dva
中是不拆的,而且也不好维护。
dva
中的component
只放共用组件,routes放业务组件(比如展示…的页面),可以理解为一个路由组件。所以…今天把代码重构了一下。
(2)
尝试完全由一个数组加一个img标签实现轮播图。
这里主要通过数组模拟栈和队列的API实现
队列
- shift:从集合中把第一个元素删除,并返回这个元素的值。
- unshift: 在集合开头添加一个或更多元素,并返回新的长度
栈
- push:在集合中添加元素,并返回新的长度
- pop:从集合中把最后一个元素删除,并返回这个元素的值。
思路
(3)今天搞定了网易云的循环动画
先上代码
1 | this.state = { |
(3)关于样式共用
例如ico整个网站都是共用的,每个页面都要重复写ico-position就会很low。
(4)关于react
- render()里面不该有this.setState(),因为每一个纯函数都不该引起状态的变化。而是应该完全由this.state和this.props来决定渲染的内容。
- componentWillMount存在的主要目的是为了和componentDidMount对称,意义不大,被废弃了。
- 子组件不应该修改传入的props值。试想一下当一个父组件有多个子组件,并传入一个js对象,当某个子组件改变对象时,其他子组件都会受到影响。
- 并不提倡在JSX中直接把匿名函数直接赋值给事件。原因:每次渲染都会创造一个新的匿名方法对象,而且有可能会引发子组件不必要的重新渲染。
componentWillUnmount
中的工作往往和componentDidMount有关,比如在componentDidMount中用非React方法创造了一些DOM元素,如果撒手不管肯内存泄漏,需要在componentWillUnmount中清理这些DOM。
(5)dva的model中多个异步问题
直接贴代码
1 | let Arr = []; |
底层是redux-saga的Promise.all()
(6)了解一些基本的Ubuntu命令
ll = ls -l 列出
ls -a 隐藏文件 (”.”开头的文件)
du -h –max-depth=1 查看各文件夹大小命令
cat xxx.xxx 展示该文件
pwd 执行pwd指令可立刻得知您目前所在的工作目录的绝对路径名称
(7)git学习
git命令的基本数据流
一个git仓库包含工作目录,与.git目录。其中.git目录是工作目录的下的一级子目录。
文件状态
已修改(Modified) - 文件已修改,且没有存入缓存或者版本库
已缓存(Staged) - 文件最新修改已放入缓存区中,但尚未存入版本库
已提交(Committed) - 文件最新修改已存入版本库
基本命令
git init - 初始化工作目录,使之能够被git管理。会生成子目录“.git”.
git commit -m “des” - 总是从缓冲区发出。
git commit –amend -m “Correct message” - 把本次提交与最后一次提交合并(删除最后一次提交,加入合并后的提交
echo”temp/“ >> .gitignore - 忽略的文件 ignore files
git status - 显示某些文件已修改,哪些文件已准备提交等信息
git add xxx.xxx 将文件加入缓存区
git branch -a - 列出所以分支
git branch xxx - 创建
git branch -d xxx - 删除
git branch -m
- 重命名 git branch xxx –edit-description - 修改分支描述
git checout - 到缺省分支
git checkout xxx -切换至某分支
git checkout -b xxx - 创建新分支并切换至新分支
git clone URI路径
git clone –depth 1 URI路径 注意如果不设置–no–single-branch,只会克隆HEAD所在的分支。–depth表示克隆的最近版本数
git diff - 显示缓存区(Index)与当前git库版本之间的差异
git diff –cached
显示工作目录与当前git库版本之间的差异
git diff HEAD
git log - 显示所以提交 –online –merges –graph
git merge xxx - 把其他某个分支,合并入当前分支
git mv old.xxx new.xxx - 改名
git mv xx.xx ./path/to/xx - 移动
git mv -f myFile existingFile - 强制改名或者移动文件(适用于目的文件已经存在的情况)
git pull
- 把远端origin的master分支拖动到本端git仓库 git pull origin master - 如果当前分支与某个“远端分支”绑定,则先把其远端分支拖动到本地,再合并入当前分支
git pull - 合并到本端分支的策略是采用rebase
git rebase master experimentBranch - 把特性开发分支重整到主分支上 - 一个重要准则:不要重整已经提交到公共仓库的版本
git reset - 用HEAD指向的内容更新缓存区(Index)
git reset –hard - 用HEAD指向的内容更新缓存区(Index)与工作目录
git reset 31f2bb1 - 先移动HEAD指针,再用get reset的操作
git reset –hard 31f2bb1 - 先移动HEAD指针,再用git reset –hard的操作
git reset –soft 31f2bb1 - 只移动HEAD指针
git revert
- 回退特定提交 git rm /pather/to/the/file/HelloWorld.c - 删除文件(删除文件的同时,也变更git工作目录与缓存区(Index)的状态)