ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

javascript-基于组件的大型Web项目的Backbone-RequireJs样板

2019-12-01 07:33:37  阅读:310  来源: 互联网

标签:boilerplate backbone-js requirejs javascript


我们有一个大型的Web项目,在这里我们需要可以互相通信的组件,这些组件可以放在不同项目的组件中央存储库中.
使用reuirejs和Backbone进行模块化开发.浏览了可用于主干和requirejs的不同样板,但没有一个符合我的要求.因此,我创建了以下目录结构.可以解释如下.

---resources
 |---custom-components
   |---mycomponent
     |---js
       |---views
       |---models
       |---collections
     |---css
     |---templates
     |---mycomponent.js
   |---mycomponent2
     |---js
       |---views
       |---models
       |---collections
     |---css
     |---templates
     |---mycomponent2.js
 |---libraries
   |---backbone
   |---underscore
   |---jquery
   |---jquery-ui
 |---jqueryplugins
   |---jcarouselite
 |---thirdpartyplugins
 |---page-js
   |---mypage.js
   |---mypage2.js

> resources目录将包含所有资源.在此之下,我们将提到4个目录.
>库,jqueryplugins和thirdpartyplugins显然是它们所说名称的目录.
> page-js目录将包含实际的main-js,它将在我们的html文件中用作requirejs data-main属性.
>自定义组件是我们创建的所有小部件都将驻留的位置,如您所见,它具有一个与该组件同名的js文件,它将作为该小部件的入口.该目录还包含js,css和模板的目录. CSS和模板将分别通过文本插件和CSS插件加载. Js目录将包含使该小部件工作的所有主干代码.

自定义组件将由驻留在page-js中的main-js询问.

满足我的需求.
    1.我希望专家们从大型Web项目的角度审查此目录结构,在此您需要与其他团队共享窗口小部件.欢迎提出建议.
    2.我的每个自定义组件都将定义一个模块,该模块将在包结构以及包外部结构中具有依赖性.我想知道,是否有任何方法可以使用r.js在包结构中仅优化我的自定义窗口小部件依赖性,并让插件和库分别进行优化.
    3.我正在开发单页ajax应用程序,因此我将按需询问模块,因此在不需要模块和小部件时需要清理它们,有什么方法可以清除吗?

解决方法:

关于目录结构

作为目录结构模式,我强烈建议使用cakePHP的目录结构.真的很健壮!我正在运行多个应用程序(其中一个与Groupon一样大),它的运行就像一个魅力.
您可能需要稍微调整一下,因为,cake是一个PHP框架,而您是一个JavaScript框架.

这是蛋糕的很棒的MVC目录结构:

请注意,您可以在单个Cake安装中托管数千个应用程序.因此,如果您有兴趣,还等什么呢? go to their site并阅读他们的文档.

关于清理技术

好吧,这是我不喜欢的Javascript的缺点之一.没有像Java或C那样真正破坏OO模块的方法.在这里,我们没有C的〜析构函数之类的东西.

多年来,程序员使用module = null来释放未使用的代码中的内存.

还要看看这些:

> Can dynamically loaded JavaScript be unloaded?
> Loading/unloading Javascript dynamically
> How to unload a javascript from an html?

希望它对设计您的应用程序有帮助并祝您好运; D

标签:boilerplate,backbone-js,requirejs,javascript
来源: https://codeday.me/bug/20191201/2079338.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有