我的 2018

干了啥?

  • 一月 一月以及前面几个月都在和 java se 斗智斗勇。
  • 二月 还是与 java se 斗智斗勇,因为过年以及玩心太大,整个二月没有几天是静下心来学习的。
  • 三月 开学了,试着把放假的心收回来,慢慢的回到了 java se 的知识海洋。
  • 四月 自认为 java se 学的差不多了, 开始进攻 jdbc。
  • 五月 jdbc 学的差不多了, 跟着知乎上推荐的学习路线, 开始学习 java web。
  • 六月 沉浸在 java web 的知识海洋中。
  • 七月 放假了,慢慢开始接触框架,从开始的 spring,到 ssh,再到 ssm,一路上虽然都是简单的 crud 但也让了解到不少新的东西。
  • 八月 maven 的开始,手动找 jar 包时代已经结束, 期间还发现有另一个工具 gradle, 但并没有接触,可能以后会接触到, 原本以为 ssm 已经完结了, 没想到还有 spring boot,用 spring boot 做了一些简单的 crud 准备开学了。
  • 九月 学了一年 java 的我,做了一个很大的决定,从 java 转向前端,要说为什么,我觉得没有什么具体的原因,只能说对前端比较感兴趣吧,加上之前(中专的时候)学习过前端的知识。所以直接跳过前端基础知识,开始学习前端的前沿知识,es6,webpack,node js
  • 十月 沉浸在 vue 的海洋中,发现这东西比 jQuery 方便不少(命令式到声明式),开发的方式也有很大的变化(html 文件到组件化开发)。期间也用 vue 技术栈写了几个小的项目。
  • 十一月 前端是学不完的,开始学习 react,发现这东西比 vue 要麻烦不少。但是两者都各有各的优势,一个是简单,一个是自由。在摸爬滚打的情况下,最终还是美好的,也用 react 技术栈也写了一个小项目。
  • 十二月 前端是永远学不完的,开始学习 angular2,由于需要前置知识,就先大概学了一下 typescript 和 rxjs,经过一些摸索,尽管没有用 angular2 做一些小的项目,也对 angular2 的开发有了一个初略的认识。

遇到了啥问题?

这一年里,学习到了很多以前没接触过的新知识,学习的过程中也走了不少的弯路,期间遇到问题也都是从网上查阅资料,虽然经过了一段时间的摸索,问题也都得以解决,但自己并没有系统的整理过自己所遇到的问题。在此将我在 2019 遇到的一些问题记录下来。

vue, react, angular 多个前端项目如何部署在一台服务器。

  • 最简单的方式就是根据 url 路径, 通过反向代理到不同的项目根目录。
  • 如果不用反向代理,可以通过 url + 目录名的形式来区分,但是这样做,每个项目需要单独配置资源路径以及基本的路由而且每个前端框架的配置不一样,比较的很麻烦,不建议这样做。

apache 反向代理 socket.io / websocket。

  • 由于 websocket 需要保持长连接, 需要借助 rewrite 模块来支持 websocket 的长连接。
# 开启重写
RewriteEngine On
# 重写以 /api/socket.io 开始的url
RewriteCond %{REQUEST_URI}  ^/api/socket.io		[NC]
# http 请求头中需要包含 transport=websocket 参数
# socket.io 特有的规则, websocket 则没有这一条
RewriteCond %{QUERY_STRING} transport=websocket	[NC]
# 配置 url 转发的规则, 必须先满足上面的条件
# /api/xxx 的 url 转发到 ws://localhost:3001 这个地址
RewriteRule /api/(.*)   ws://localhost:3001/$1	[P,L]

linux 在关掉窗口/断开连接的情况下保持任务继续在后台执行。

  • 有时候需要在终端断开的情况下,继续让任务在后台正常运行, 并且下一次连上终端能够看到之前打印的内容。
  • screen 来管理。

react-router v4 如何将路由集中管理。

  • react-router v4 路由配置起来比较松散, 这样的话,根据路由来定位到具体是哪个组件就要绕好几层,比较麻烦。
  • 后来才发现 router-router-config 可以集中管理项目中的路由, 真是相见恨晚。

完。