关于构建大型SPA的疑问

发布于 2022-09-04 09:01:12 字数 141 浏览 18 评论 0

有没有全站都使用Angular.js或者Vue.js或者是React.js的?想利用SPA和后端PHP来完成项目,不知道可行性如何?如果采用SPA,怎样处理一些数据交互的,是用ajax还是通过调用无状态的api来交互数据,怎样处理cookies和session的问题。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(14

GRAY°灰色天空 2022-09-11 09:01:12

试着说说我的想法:

  • 无状态的 API 是指不验证用户身份吗?如果是这样理解的话,不敏感的信息(比如相对固定的大型关联下拉列表)可以用无状态的 API。

  • SPA 前端应该是不需要直接使用 cookie 的(参考下一条),session 让后端的 PHP 去处理,包含必要信息的 cookie 在每个 xhr 请求都会提交给后端。

  • PHP 端和传统开发没太大区别,应该说更简单了,不再需要考虑渲染的问题,基本上每个请求都是以输出一个 JSON 来结束的。

  • 前端如果需要保存一些信息供下次打开页面使用,可以使用 localStorage。

  • 对于大型 SPA 前端的 router 应该算是挺重要,需要认真谨慎对待的一个环节吧。因为用户可能收藏一个不是初始的 URL 下次直接进入。

  • 如果需要兼顾低配的设备(如小内存的安卓手机或 10 年前的仍在且仅能勉强运行 XP 的 PC),可能不是太合适。但是 SPA 应用常常面向的用户整体较为前卫一些,或许不会面临这种问题。

一个人的夜不怕黑 2022-09-11 09:01:12

angularjs做开发单页面应用完全没问题,我们公司使用的是angularjs+java。java只提供数据(json)接口(restful)。angular.js的$resource服务等装了ajax,利用延迟对象解决回调等问题。angula.js应用要注意分层,就是类似于后台的mvc,各个层功能明确,这样才不会使整个项目混乱。可以去找一个模板程序看看,根据模板改成自己项目,在npm里搜generator-开头的项目。

寄居人 2022-09-11 09:01:12

如果全都使用angular,全程ajax,那seo的问题就无法避免。如果是cookie你可以在官网api上面看到如何存储ngCookie

寄居者 2022-09-11 09:01:12

登录返回一个token
然后需要用户身份的操作,传token
这样就不需要cookie和session了

小伙你站住 2022-09-11 09:01:12

如果站点在移动站,完全可以考虑SPA

鲜肉鲜肉永远不皱 2022-09-11 09:01:12

稀土掘金好像就是全站都是Vue开发的 你可以看看看

温柔一刀 2022-09-11 09:01:12

worktile就是SPA,可以看看团队协作工具Worktile技术架构揭秘

另外补充一下,越是大一点的SPA项目,前期一定要有良好的文件组织结构,以及自动化配置。这里不得不提一下F.I.S的angular项目种子,很不错 ,值得去看看一下

暮年慕年 2022-09-11 09:01:12

全站SPA自己写小项目的时候做过, 使用的是reactjs, 和后台交互采用superagent, 其实也就是ajax, 身份验证当时查了很多资料, 最后是在登陆后在后台保存一个身份, 返回token, 并本地保存, 以后每次请求带上token并验证, 然后返回新的token, 这样做其实是有很大的问题, 但是其他的方式多多少少也有问题, 不过既然打算上restful的话, 个人认为直接上HTTPS是最方便的。

顺便贴一个关于restful下身份验证的讨论, 可以参考一下
http://stackoverflow.com/ques...

话说个人觉得SPA并不意味着要完完全全的实现无状态..(我好像跑题了)

長街聽風 2022-09-11 09:01:12

认证?和平常一样用 session 就好了。ajax 也是带着 cookies 的

遇见了你 2022-09-11 09:01:12

移动端有很多的spa了,另外seo的问题 可以靠框架结合服务端渲染解决,

乱了心跳 2022-09-11 09:01:12

我最近使用riotjs做了一个spa的电商项目,PHP写rest服务,rest服务提供给前端页面和Android客户端调用。
使用riotjs构建整个项目,包括首页,列表,详情,购物车,订单,以及登录等页面。

感性 2022-09-11 09:01:12

Angular.js是为spa而生的框架,就是seo有些小问题,不过可以通过其他手段解决。
Vue.js还是不错额,做spa还可以额,我看uc很多应用都用这个做底层框架,移动端还是不错的

┈┾☆殇 2022-09-11 09:01:12

http://rentever.com
用我开源的基于knockout的spa小框架做的单页应用,性能和体验自认为不错。前后端完全分离,后端用SailsJS做的RESTful API和WebSocket。

小框架(带中文说明)
https://github.com/onlyurei/k...

眼眸里的那抹悲凉 2022-09-11 09:01:12

楼上有人讲到前后端分离做全站SPA的时候会出现SEO问题,我最近看到vue.js2.0有服务端渲染的概念,其他框架也可以在中间加一层nodejs服务端把页面渲染一下,只不过要多加一些机器而已。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文