终于找到了梦想中的前端框架 --- vue.js
2016-03-26 12:15
741 查看
前面小半年,业余时间研究了超有前途的前端“框架”新秀React,无奈前端我本就是半吊子,没什么基础,再加上React大量应用FP(函数式编程),想把React用好还得熟悉大量第三方js库,如normalizr, history,redux,redux-router,还要学习middleware等扭曲的概念,以上这些障碍,让我举步维艰,到现在还没怎么搞明白React的整个体系。
这是其一,更重要的是其二,用React的原始动机就是看重它的Web组件化能力(web component),但React有个非常致命的东西,就是它基本就是一个自成一体的闭环,几乎所有的事情都必须在它的内部实现,无法对外部暴露成多个web组件。从外界看来,React产出的是一个大组件。如果临时希望改变组件的组合形式,就必须去重新编译整个React工程。
吐槽结束,为了政治正确,还是应该充分肯定一下React的,它的跨平台能力,它广泛的社区组件,的确是非常有吸引力。
那么,我想要的东西是什么呢?我希望有一个组件库,发布后无需改动。任何后继改动都是在html页面中进行。例如shop.html:
build.js提供了三个组件:app,app-header,app-footer,在HTML页面中,我可以这样写:
也可以这样写:
可以这样写:
甚至可以这样写:
更换这些写法,无需重新编译build.js,我只需要改html文件就行了。明白我的意思了吗?编译,发布,很麻烦的~我们只是小公司而已,没有BAT那些自动化流程,我们要求快准狠,仅此而已。
我可以手写HTML,可以通过php、nodejs动态生成HTML,等等,而不是把一切绑死在js内部。数据由HTML提供,component只负责渲染,how perfect!
那么,谁可以搞定这一切呢?vue.js!
Byebye React,Hello Vue!
小故事:vue.js的作者尤雨溪,他的知乎链接戳这里
这是其一,更重要的是其二,用React的原始动机就是看重它的Web组件化能力(web component),但React有个非常致命的东西,就是它基本就是一个自成一体的闭环,几乎所有的事情都必须在它的内部实现,无法对外部暴露成多个web组件。从外界看来,React产出的是一个大组件。如果临时希望改变组件的组合形式,就必须去重新编译整个React工程。
吐槽结束,为了政治正确,还是应该充分肯定一下React的,它的跨平台能力,它广泛的社区组件,的确是非常有吸引力。
那么,我想要的东西是什么呢?我希望有一个组件库,发布后无需改动。任何后继改动都是在html页面中进行。例如shop.html:
<html lang="en"> <head> <meta charset="utf-8"> <title>shop</title> </head> <body> <app> <app-header></app-header> <app-footer></app-footer> </app> <script src="dist/build.js"></script> </body> </html>
build.js提供了三个组件:app,app-header,app-footer,在HTML页面中,我可以这样写:
<app> <app-header></app-header> <app-footer></app-footer> </app>
也可以这样写:
<app> <app-header></app-header> </app>
可以这样写:
<app> <app-footer></app-footer> </app>
甚至可以这样写:
<app> </app>
更换这些写法,无需重新编译build.js,我只需要改html文件就行了。明白我的意思了吗?编译,发布,很麻烦的~我们只是小公司而已,没有BAT那些自动化流程,我们要求快准狠,仅此而已。
我可以手写HTML,可以通过php、nodejs动态生成HTML,等等,而不是把一切绑死在js内部。数据由HTML提供,component只负责渲染,how perfect!
那么,谁可以搞定这一切呢?vue.js!
Byebye React,Hello Vue!
小故事:vue.js的作者尤雨溪,他的知乎链接戳这里
相关文章推荐
- java,二进制转换为十进制,valueof和parseInt的区别
- “ordinal type required”问题解决
- Orchard源码分析(5.3):EndRequest事件处理(DefaultOrchardHost.EndRequest方法)
- Orchard源码分析(5.2):BeginRequest事件处理(DefaultOrchardHost.BeginRequest方法)
- SystemConfig.getPropertyValue("test");配置文件已经加了test=abc,但是取得时候空字符串
- require.js 入门笔记
- UITabBarController 根视图控制器
- HDU Buildings
- String、StringBuffer和StringBuilder使用和区别
- 在storyboard中的静态UITableView中拖入 UISearchBar and Search Display Controller出现的奇怪问题
- HDU 3436 Queue-jumpers
- java Queue集合
- hdu 4441 Queue Sequence
- Guice学习之Bindings
- 使用easyui-textbox, 点回车键,执行某个按钮的方法
- POJ 2524 Ubiquitous Religions
- UIScrollView的delaysContentTouches与canCencelContentTouches属性
- UIScrollView的作用原理,实现scrollView中touch事件作用子视图
- UIScrollView上的控件处理touch事件
- UIScrollView的属性总结