SAPUI5要实现页面的跳转,则需要借助Route实现。之所以想要写关于Route的配置的文章,是因为该组件的配置项比较抽象难懂。在我第一次接触的时候,就有很多疑惑,API简绍的也不够详细,后来随着学习的深入,发现SAPUI5有一个极佳的例子,专门讲述Route的用法,SAPUI5 SDK 里面Demo Kit里面有Dev Guide,其中Tutorial章节有个navigate的练习,专门讲述的Route相关的内容。
Route主要有以下几个配置项,3个方面:
第一个是Route类的配置。刚开始不理解的是,既然SAPUI5提供了标准的Route组件,为什么还要显示配置Route的classpath?因为标准的Route功能可能不全面,需要自己扩展,封装常用的Getter Setter方法,经常见到封装一个成MyRoute来使用的用法。
第二个是routes的配置。routes是一个JSON数组类型配置项,里面的Item包含三个属性,pattern,name,和target,这里就有点要强调说明的了,这里的pattern属性,其实可以理解为显示在浏览器地址栏的URL,主要是为了实现在地址栏的可见,以及通过浏览器地址栏就可唯一定义到一个View。name是routes item的名字,主要是用于Route的调用navTo接口是,唯一标识一个route item,可以理解为route item的ID。容易混淆的是,有些人可能会问,Path属性和Name会不会有点重复,一般URL也能唯一标识一个View,其实的确,简单的规则的情况下,可以直接用pattern来作为ID,但有了name,pattern URL中就可以包含动态内容,参数化,这是主要目的。第三个属性是target,target即代表一个View(也可以是多个,多个情况一般是一个fregment作用view,比如top和content),确切的讲,是target的Item,target Item里面会定义View的classpath。
第三个是targets配置。targets是JSON Object,key是target的ID,value是一个target item,其中包含,viewName,即view的classpath。
此外,还有些更高级的配置项没有讲到,比如target的viewLevel,transition,viewPath,controllerId,controllerAggression,留作以后再说。