简单的路由
不管是借助第三方库,还是自己实现简单的路由,都需要先定义一个组件充当管理者,去动态渲染不同的页 面组件,而且为了管理方便,这里的组件可以使用实例组件来代替。
var PageA = Intact.extend({template: '<div>pageA</div>'});
var PageB = Intact.extend({template: '<div>pageB</div>'});
var routes = {
'/page/a': PageA,
'/page/b': PageB
};
var App = Intact.extend({
template: '<div>{self.get("view")}</div>',
defaults: function() {
return {
view: null
}
},
load: function(Page) {
var page = new Page();
this.set('view', page);
}
});
var app = Intact.mount(App, document.getElementById('app'));
// 这里使用hash路由
window.addEventListener('hashchange', function() {
app.load(routes[location.hash.substr(1)]);
});
// 初始化hash
location.hash = '#/page/a';
如果你熟悉
template
模板函数的使用,你也可以使用类组件实现