有人可以面对 asp.net mvc 和 bem ( http://bem.info/ ) 的集成吗?可以介绍示例或教程链接吗?
1 回答
我无法为您提供代码示例,因为我不使用 asp.NET。但是,如果我的理论答案可以提供帮助,那就是:
首先,您可以使用 BEM 的 CSS 和文件系统部分。我的意思是你可以为你的块组件分离 CSS 代码并将它们存储在它们各自的文件中。
blocks/
button.css
footer.css
header.css
login.css
然后,您可以将此文件收集到带有@import
. 要展平文件,请使用borschik
( https://github.com/bem/borschik )。顺便说一句,您可能对最近发布的开发工具borschik sever
https://github.com/bem/borschik-server感兴趣。
然后,如果您准备好更进一步,您还可以为您的各个组件提供 JavaScript 文件,并将这些文件与组件的 CSS 文件一起存储。
blocks/
button/
button.css
button.js
footer/
footer.css
header/
header.css
login/
login.css
login.js
与 CSS 类似,您可以将这些 JavaScript 片段用于您的每页 JavaScript 包。当然,JavaScript 中没有类似@import
. 但这里再次borschik
可以提供帮助。如果您有page.js
如下内容的文件:
borschik:include:blocks/login/login.js
borschik:include:blocks/button/button.js
在该文件上运行 borschik,您将获得_page.js
包含内联内容的文件。有关更多信息,我推荐在 bem.info http://bem.info/articles/borschik/上写一篇关于 Borschik 的文章
如果您厌倦了将每个块链接到页面的 CSS 文件,然后再链接到页面的 JS 文件,那么有一种方法可以统一它。您可以使用bem tools
https://github.com/bem/bem-tools。page declaration
有了它们,就可以在 JSON中创建我们所说的 a 。然后,根据声明,bem tools
将为您的页面捆绑 CSS 和 JavaScript 文件。实际上还有其他技术,如果你需要的话。评论已经很长了。所以,我不会bem tools
在这里描述使用。但如果文档不够,请询问。
最后一点是模板系统。我猜 asp NET 有一个,不是吗?如果是razor
,它必须与 TT2 (perl) 非常相似。我遇到了这样的项目,并且可以描述他们做了什么。
他们使用 2 个“层”模板。第一个是原生嵌入式模板系统。但它的输出不是通常的 HTML,而是 BEMJSON 页面描述。什么时候,由于有 node.js 绑定,可以在这个 JSON 上运行服务器端 JavaScript。在服务器端 JavaScript 中,他们使用 BEMHTML 模板。您可以通过“快速入门”文章http://bem.info/articles/start-with-project-stub/或本教程http://bem.info/articles/bemhtml-intro/来体验它