不显眼的JavaScript是Web上许多地方的良好实践。您提到的框架通常用于创建完整的JavaScript应用程序。在这些应用程序中,没有JavaScript的情况下体验通常是一个空白页面。在这种环境下,将标记与JavaScript分离的价值相对较低。
我也在思考同样的问题,得出以下结论:
HTML是一种用于呈现文档的标记语言。每个人都在谈论的语义实际上与表示丰富文档有关。这包括图像和链接,允许更丰富的体验。 相同的原则可以应用于Word文档,其中您可以将特定文本标记为强调,然后将强调样式设置为红色,这将是表达意图的语义正确方式。
问题出现是因为HTML实际上包括允许用户交互的元素-表单。最初的设计是允许非专业人士创建简单的交互式UI。当我检查不同的桌面GUI框架时,实际上没有区分实际视图和视图逻辑,因为构建GUI时您不需要该分离。
对我而言,重要性在于您编写的内容基于多少内容或GUI。因为HTML具有两个用途,所以很难知道从服务器提供什么内容。 基本上,像维基百科甚至Stackoverflow等网站都是以内容为导向的。这意味着如果它们想要面向更广泛的客户端,例如机器人和旧浏览器,它们应该能够流式传输纯html。 我考虑的是提供内容和一些更丰富的UI体验(例如我正在编写此评论的文本区域)时可能采用两种可能的策略。其中一种是提供HTML,然后初始化GUI。这也被称为非侵入式JavaScript和语义HTML。大多数以内容为导向的网站都这样做。这主要是为了能够从允许其内容更易于访问的浏览器和机器人中受益。 另一种策略将是识别客户端类型并提供不同的内容,这只能在客户端上可靠地实现,因为在两种情况下都会提供HTML。由于HTML作为内容和GUI表示的使用/滥用方式,这仍然接近第一种策略。
如果您正在编写不提供内容而提供实际服务/进程的应用程序,则类似AngularJS等的架构更适合。
根据我的经验,大多数企业都需要提供两者。比如说您有一个应用程序,使用HTML/Javascript让用户创建绘画。这个应用程序不需要遵循任何不显眼的指南,但是它也无法在旧的浏览器上运行。但是,如果您提供了绘画之间的社交分享功能,允许评论和其他内容,那么最好以一种使机器人和其他客户端可以轻松访问内容的方式编写该网站的此部分。