Junior:用于构建具有原生外观的HTML5移动应用的前端框架

嘿,大家有没有听说过Junior这个框架?如果你正在寻找一种能让你的HTML5移动应用看起来像原生应用的工具,那Junior绝对是个不错的选择啦!它不仅支持CSS3过渡效果,还能让你的应用在移动设备上运行得更流畅。最酷的是,它还集成了backbone.js的视图和路由器,简直是前端开发者的福音。
安装指南
说到安装,Junior的依赖项主要包括modernizr、zepto、zepto flickable、lodash和backbone。别担心,这些都已经打包在lib/javascripts目录下了。你只需要按照以下顺序在你的HTML中引入这些脚本就行:
html
<script src="lib/javascripts/modernizr.custom.15848.js"></script>
<script src="lib/javascripts/zepto.min.js"></script>
<script src="lib/javascripts/zepto.flickable.min.js"></script>
<script src="lib/javascripts/lodash.min.js"></script>
<script src="lib/javascripts/backbone-min.js"></script>
<script src="src/javascripts/junior.js"></script>
至于CSS部分,Junior依赖于Ratchet的UI组件,这个也在lib/stylesheets目录下。记得在你的文档头部按顺序引入这些CSS文件:
html
<link rel="stylesheet" href="lib/stylesheets/ratchet.css"/>
<link rel="stylesheet" href="src/stylesheets/junior.css"/>
HTML结构
Junior.js需要你在body中设置一个#app-container和#app-main,这些地方就是动画和过渡效果发生的地方啦:
html
<div id="app-container">
<div id="app-main">
</div>
</div>
使用示例
如果你和我一样,喜欢通过例子来学习,那么Junior的Annotated Example for example.js就是个不错的起点。这个例子展示了如何快速上手。
Jr.Router
Jr.Router是Backbone.Router的一个扩展,它提供了一个renderView方法,用于自动渲染视图并附带动画效果。一个典型的路由器可能是这样的:
javascript
var AppRouter = Jr.Router.extend({
routes: {
'': 'home',
'about': 'about',
'details': 'details'
},
home: function(){
var homeView = new HomeView();
this.renderView(homeView);
},
details: function() {
var detailsView = new DetailsView();
this.renderView(detailsView);
}
});
Jr.View
Jr.View是可选的,它扩展自Backbone.View。它的作用是在检测到触摸设备时,将点击事件自动绑定为touchend事件。简单的例子如下:
javascript
var HomeView = Jr.View.extend({
render: function(){
this.$el.html("<button class='some-element'>Hi</button>");
return this;
},
events: {
'click .some-element': 'onClickSomeElement'
},
onClickSomeElement: function() {
console.log('This event occurs on touchend on mobile or on click otherwise')
}
});
Jr.Navigator
Jr.Navigator用于通过动画触发导航,它的工作方式类似于Backbone.history.navigate:
javascript
Jr.Navigator.navigate('details',{
trigger: true,
animation: {
type: Jr.Navigator.animations.SLIDE_STACK,
direction: Jr.Navigator.directions.RIGHT
}
});
目前,Junior只支持SLIDE_STACK动画,从一个视图滑动到下一个视图。方向上只有RIGHT和LEFT,但未来可能会有更多的动画效果哦。
最后嘛,我觉得Junior这个框架真的是为那些想要快速构建移动应用的开发者量身定制的。它不仅功能强大,而且易于上手。如果你也对移动开发感兴趣,不妨试试Junior,或许会有意想不到的惊喜呢!