跳转是用了 react-router 做处理的,加了 # 的 hash 路由是让 url 路径产生变化,以便让浏览器可以前进后退。
用 react + react-router + redux + webpack + es6 写的个人博客
cobish
#6
请求接口后的数据是保存在 redux 的 store 中,实际上就是保存在 state 中,如果不去刷新浏览器就不会再去网络请求。没有 redux 也可以保存在 react 的 state 中,因为使用了 react-router 所以整个页面并没有实际刷新,所以 state 会一直存在。
leedstyh
#11
嗯我研究明白了,每次按返回键,component都会重新渲染,所以state是空的,需要在componentWillUnmount的时候把state存到其他的变量里,然后componentDidMount的时候检查这个变量。说到底,还是redux类似的思路,store放在component外面。
menyouneko
#14
做得不错!
在这里有个问题想请教一下,
构建之后的vendor.js是如何压缩到只有70多k的?
我压缩了之后的vendor.js有280多k…
( 主要模块为:‘vendor’: [‘react’, ‘react-dom’, ‘react-router’, ‘redux’, ‘redux-thunk’])
各种设置也试过了,也参考了一下楼主webpack的配置,还是没有办法进一步压缩…
楼主在压缩文件方面有什么经验吗~
谢谢解答!
cobish
#22
该怎么说呢。文章模块的源码在这里。
1、现在把多说评论框去掉了,也简单了一点;
2、该模块用的数据在 store
里面,这个模块里获取 props
的数据就是文章内容了;
3、获取到内容,在 render
的时候通过 marked
(转化 markdown 语法)和 highlight.js
(代码高亮)两个第三方库来显示出来,主要是使用这两个库的一些 api;
4、就这些了,没其它的了。