NavigationView的基本介绍

NavigationView是在触屏环境下的一个重要组件,它可以管理多个视图之间的显示、隐藏、切换,同一时间只能显示一个视图。并针对没有提供“返回键”的终端系统,如IOS,提供了一个模块 navigation-view/bar 实现返回按钮,可配合使用。NavigationView专注以下几点:

  • 视图切换,多种视图切换效果
  • 视图管理,缓存,销毁,离开,进入接口
  • 视图滚动,使用 scroll-view 统一处理视窗滚动
  • 历史管理,和原生浏览器历史完全一致

此外,它细粒度模块化,预留扩展接口,不涉及 model,内容获取,业务架构等使得它可以灵活适用于不同的业务和使用场景。

引入样式资源

<link href="http://g.tbcdn.cn/kissy/edge/2014.08.26/navigation-view/assets/dpl.css" rel="stylesheet">

载入模块

require(['navigation-view'], function(NavigationView){
    //use NavigationView
});

简单使用

require(['navigation-view', 'navigation-view/bar', 'scroll-view', 'scroll-view/plugin/scrollbar'], function(NavigationView, NavigationViewBar, ScrollView, ScrollBar){
    var navigationView = new NavigationView({
        loadingHtml: '<div class="ks-navigation-view-loading-outer">' +
            '<div class="ks-navigation-view-loading-inner"></div>' +
            '</div>',
        render: 'body'
    }).render();

    var bar = new NavigationViewBar({  //添加工具栏“返回”按钮
            navigationView: navigationView,
            elBefore: navigationView.get('contentEl')
        });

    var PageView = ScrollView.extend({  //拓展自ScrollView,则该视图可滑动浏览
        createDom : function(){
            //your code
        },
        bindUI : function(){

        },
        enter : function(){

        },
        leave : function(){  //navigationView.pop()会触发事件进入该函数

        },
        destructor : function(){  //若组件调用destroy方法,则会进入该函数

        }
        //....more function
    },{
        xclass : 'page-view',
        ATTRS: {
            plugins: [ScrollBar]  //使用了 ScrollBar 插件,则该视图右侧栏有滚动条显示
        }
    });

    navigationView.push({   //随便将执行所添加组件的初始化函数,依次执行方法:createDom -> bindUI -> enter
        xclass : 'page-view',
        title : 'PageView Title'
    });
});

更多信息

该模块的 attributes/methods/events 的具体信息请查看 navigation-view api文档