菜鸟提问,react前后同构,如何实现,首次打开ssr,之后的操作spa?
各位前辈好 小弟是一个新手 刚学react不久
用react做了一个网站, 是spa的,用react16写的 我的网站有大约10个模块, 每个模块对应不同的路由, 如 /user 是user模块 /blog 是博客模块 /news是新闻模块 我希望每个模块的首页 能让搜索引擎抓到, 但之后的页面 因为全部要求登陆才能操作,所以不用顾及seo
但是我现在遇到以下几个问题:
- 当我采用ssr后,如何只让每个模块的首页使用ssr,让其他页面保持spa呢? 2.当用户首次访问模块首页,如/blog模块,得到是ssr的内容,这时候,用户提交搜索请求,如何让这个请求是spa中的ajax请求呢? 3.每个模块的首页是长期不变的,如何设置缓存,更好的提醒性能呢?是否有成熟方案呢?
简单的说,就是希望 没有登陆的用户(包含搜索引擎),看到的是ssr, 登陆的用户,看到的是spa
请各位前辈指点一二, 谢谢
3 回复
ssr和spa并不冲突,至于你想要的功能可以使用token等实现,服务端判断用户有没有登录,进而决定使用ssr还是普通渲染方式
1.考虑性能问题
- 考虑用户加载速度
- 考虑SEO 那你可以用 nuxt.js (针对vue) 或者 next.js (针对react)
首先DNS 解析的时候分开,用户解析到CDN 节点,蜘蛛解析到后端服务器(SSR渲染) CDN 上放的是 SPA 编译后的前端代码,由于nuxt 特殊的分页,用户只会加载当前页所需要的 js 文件,渲染页面的同时 加载全局 js。 所以很快。
访问速度可参考: https://www.029inno.com/