• SAPUI5 fiori 开发的最佳实践 Best Practices for App Developers


    一,只加载使用到的组件

    1,使用manifest定义App所需要的依赖

    "sap.ui5": {
    	"dependencies": {
    		"minUI5Version": "1.60.0",
    		"libs": {
    			"sap.ui.core": {},
    			"sap.m": {},
    			"sap.ui.layout": {}
    		}
    	}
    	...
    }
    

    2,在js文件中,不使用的依赖一定要从sap.ui.define中删除

    sap.ui.define([
    	"sap/ui/core/mvc/Controller",
    	"sap/m/MessageToast",
    	"sap/base/Log"
    ], function (Controller, MessageToast, Log) {
    	...
    

    3,使用Lazy加载(还没使用到的数据暂时不加载)。

    下面List控件的例子,一次检索20条数据,滚轮滚动时,再取20条。
    注意:要满足这个需求的话,后端ABAP代码,也需要一次取20条。

    <List
    	growing="true"
    	growingThreshold="20"
    	...>
    

    二,使用MVC

    1,使用官方推荐的文件夹结构

    2,使用XML格式的view

    UI5支持XML,JavaScript, JSON, or HTML 4种view,官方强烈推荐使用XML。
    XML的好处是显示与逻辑可以分离开,易于维护;BAS工具可以识别XML,进行拖拽。

    3,controller的名字要和view一样

    如果有共通的功能,可以放在BaseController里面,别的controller继承BaseController。

    三,view要短小和简单

    1, 使用sap.m作为默认的命名空间

    xmlns="sap.m"不用起别名
    其他的起别名,比如:xmls:a="sap.ui.layout"
    a就是别名,别名一定要短。

    <mvc:View
    	xmlns="sap.m"
    	xmls:l="sap.ui.layout"
    	xmlns:mvc="sap.ui.core.mvc">
    	<App>
    		<Page>
    			<l:HorizontalLayout>
    			...
    

    2,删除view里无效代码

    • property的默认值不需要写
    • 删除没有使用到的xmlns命名空间
    • 如果控件有默认的content 或者 items标签,则可以省略它们
    • 如果控件没有使用aggregations,则使用自关闭标签。
      比如:<Text text="aaa'/>

    3,在List控件里,避免使用复杂控件和嵌套控件,会影响性能。

    <List
    	items={/Products}>
    	<StandardListItem
    		title="{Name}"
    		description="{Text}"/>
    

    4,写view前,尽早考虑把view分成多个view或者fragments

    <App>
    	<Page>
    		<mvc:XMLView viewName="EmployeList"/>
    	</Page>
    </App>
    

    5,选择最轻量的控件,来满足需求

    UI5提供了丰富的控件,许多控件都能达到同样的目的,尽量选择最简单的。
    Sample

    四,给控件的id命名

    如果不给控件id,则UI5就自动生产id。当以后想在controller里想通过byid找到控件时,就无法指定id。最好指定id。
    Stable IDs: All You Need to Know

    五,满足CSP要求

    不要在html页面直接写JavaScript代码。

    六,使用异步加载

    异步加载会使App速度加快,用户体验变好。

    1,启动异步加载功能

    <script 
    ...
    	data-sap-ui-async="true"
    >
    

    通过上面的代码,就可以开启浏览器的并行处理多个请求的功能

    2,确保rootView和Routing的设置也开启的异步功能

    "sap.ui5": {
    	"rootView": {
            "viewName": "sap.ui.demo.walkthrough.view.App",
            ...
            "async": true
        },
        "routing": {
            "config": {
                ...
                "async": true
            }
        },
    ...
    
  • 相关阅读:
    curl命令学习笔记
    IOS安全测试思维导图
    Hello World
    Hive SQL使用和数据加载的一点总结
    采用最低松弛度优先调度的实时系统调度程序
    MongoDB Map Reduce速度提升20倍的优化宝典
    释放时间不同可中断平行机问题在线算法
    RPC框架系列——Avro
    Solr 3.6.2索引MySQL数据库配置过程
    IKAnalyzer 独立使用 配置扩展词库
  • 原文地址:https://www.cnblogs.com/xiaoshiwang/p/16229302.html
Copyright © 2020-2023  润新知