springcloud+thymeleaf是如何做到前后端完全分离的?求原理

之前,用jsp或者velocity等模板引擎都是把一些模板文件放到项目的webapp文件夹下,
浏览器请求时,直接访问controller,然后springmvc获取数据后去填充模板,最后返回给浏览器一个视图。但我觉得这种方式还不算前后端完全分离。

最近学习了springcloud,网上说的,全部都是把thymeleaf模板放到resources/template下面,也是通过springmvc填充模板、返回视图的方式,
可我觉得这种做法和之前没啥区别,也不能算前后端完全分离。

最近看到有的项目把前端的页面单拎出来作为一个前端项目,就是,前端一个项目,后端一个项目,我觉得这才是前后端完全分离,但完全搞不懂这是怎么做到的。

求大佬们给个提示:)

这个问题我已完全明白。用的是前端框架,比如vue,react,anguler(它们都擅长单页应用),这些都是应用了前端模块式开发(node.js+webpack框架)和响应式编程模式。
在响应式下,jQuery和各种模板引擎所能发挥作用的余地就很小了,甚至面临被淘汰的危机。这是因为前端程序员不用再操作DOM了。记得我刚开始工作那会,做一个某个页面,各种点击各种隐藏,麻烦的一批,最后还是交给了专门的前端人员,可学了响应式后,这些就是分分钟的事。
前端框架为前端带来了质的飞跃。首先,这使得前后端完全分离开来,后端只需负责写数据接口,所有跟页面有关的工作完全不用后端管。而前端只负责读接口文档,然后处理后端传来的数据就行了。其次,编程效率大大提高、代码耦合度大大降低,随之维护成本大大降低。页面被模块化、组件化后,一个看起来很复杂的页面引入组件库(比如element-ui)中的一两个组件就完了。
但前端框架也有些毛病,比如以往的模板引擎擅长做多页应用,如果业务上需要依靠搜索引擎排名,这对其就很有利。但前端框架擅长做单页应用,很多页面被隐藏在js文本中这使其不容易被搜索引擎检索到,但是以我来看目前市场上绝大部分项目是不需要搜索引擎排名的比如oa系统,至于官网页面就根本不必用前端框架(就是几张图片贴来贴去)。此外,单页应用要一次性加载很多页面,这使得其在第一次加载时比较慢,但是以后所有页面就是在本地加载了,那速度就很快了。不过随着5g 的到来所有跟加载有关的问题就都是小事了。

举个例子:

hello

可以看到上面的p标签里按道理来说是有两个值的(如果${hello}中有值的话),但是对于thymeleaf,如果${hello}中如果有值的话就会显示${hello}中的值,而不是
显示hello,这样做的可以完全做到前后端分离开发,前端人员只需要做页面,后端人员就知道标签里该填充什么值。
----我是小白,说的不对各位大神请多指教,别喷我 /捂脸笑