张云龙
张云龙
@xufei 最后指出的这些,说法可能不太准确: 1. grid不仅仅是全局性的,每个组件内部都可能有自己的grid,它需要复用grid的样式 2. 字体图标不能内嵌到html中,因为同一个图标会出现多次,在不同组件内都有可能被复用,也是不能每个组件都内嵌的 3. 动画过渡也具备以上复用的可能
@FrankFang 没有css的『组件』/『模块』化,我们很难写出一个通用的“JS组件”
@FrankFang > 组件化开发,第一目标是分治,第二目标才是复用。 我们划分组件更多的是为了把复杂系统拆分成独立的组件单元来开发和维护,以提高研发效率,降低维护成本。将复杂系统划分成组件来开发的时候,我们要解决组件的内聚问题,因为就近维护也是工程上的重要管理手段,所以才有了上述的讨论。 至于dialog这种可复用组件,我觉得例子举得不是很合理,毕竟你的系统不能完全由这种单元组织而成。可复用的组件为了可复用性,可以做CSS的内联,不过从维护的角度来说,更合理的做法是组件的css是独立维护的,只是在发布组件的时候将其内嵌到js而已。 关于CSS的【反模块化】是存在,但我觉得这个问题并没有想象中的那么严重,我举个非常常见的例子——Button,一般前端应用中,Button通常都是作为一种CSS样式被描述的,可以用一个`.btn`的className让一个a或者button元素展示为button效果,我觉得这种工程诉求并没有错,是非常合理的,只要把握得当,不要将css单元滥用为metacss,是没有什么问题的。如果彻底消除掉这种开发方式,我反倒觉得有些矫枉过正。 以下是我要描述的组件化开发体系: ``` site ├─ components │ ├─ nav │ ├─ btn │ │ └─ btn.css │ ├─ header │ │ ├─ header.js │ │...
so, what's the point?
@maplejan js的话,要提供编译用的函数来标记资源定位,并且只能使用字面量声明,比如 ``` javascript var url = __uri('a.png'); ``` 构建之后变成: ``` js var url = '/static/img/a_0d4f22a.png ``` 如果需要运行时变量控制多个资源的选取,可以这样做: ``` js var imgs = { a: __uri('a.png'), b: __uri('b.png'), ... };...
@FEsy 资源合并是另外一个问题,简单的资源合并可以用__inline实现( http://fis.baidu.com/docs/more/fis-standard-inline.html ),如果是复杂的实现,最好看看这里:https://github.com/fex-team/fis/wiki/%E5%9F%BA%E4%BA%8Emap.json%E7%9A%84%E5%89%8D%E5%90%8E%E7%AB%AF%E6%9E%B6%E6%9E%84%E8%AE%BE%E8%AE%A1%E6%8C%87%E5%AF%BC 我有几个demo项目: - [php版静态资源管理系统示例](https://github.com/fouber/static-resource-management-system-demo) - [模块化开发组合php版静态资源管理示例](https://github.com/fouber/fis-php-md.js) - [java版静态资源管理系统示例](https://github.com/fouber/fis-java-jsp) 这些项目用rsd一样能运行起来,你感受一下哈
@FEsy 可以,用roadmap.path指定任何文件的地址
@FEsy 不是這個意思,你可以把要生成的圖片想像成一個工程文件,然後用roadmap控制文件的發佈路徑,比如: ``` javascript fis.config.set('roadmap.path', [ ... { reg: /^\/static\/css\/(.*\.png)$/i, release: '/static/img/$1' }, ... ]); ``` 默認sprite生成的文件和css文件在同級目錄,然後你用roadmap調整這些生成文件的發佈路徑就好了
@Liv1020 比如哪样?
我觉得到9月份实现还是挺困难的,毕竟涉及到平台、运维、高质量的生态等诸多问题,工程量巨大,最终要解决的又不是全行业共同关注的痛点,商业性也偏弱。 但从技术人的情怀来看,这个预言是令人激动的,hax可以考虑单开一个主题讨论其中的技术细节,做更深入的可行性论证,如果真的要在9月份拿出结果来,恐怕就要从现在开始准备了。 > The best way to predict the future is to create it.