Java自学者论坛

 找回密码
 立即注册

手机号码,快捷登录

恭喜Java自学者论坛(https://www.javazxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,会员资料板块,购买链接:点击进入购买VIP会员

JAVA高级面试进阶训练营视频教程

Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程Go语言视频零基础入门到精通Java架构师3期(课件+源码)
Java开发全终端实战租房项目视频教程SpringBoot2.X入门到高级使用教程大数据培训第六期全套视频教程深度学习(CNN RNN GAN)算法原理Java亿级流量电商系统视频教程
互联网架构师视频教程年薪50万Spark2.0从入门到精通年薪50万!人工智能学习路线教程年薪50万大数据入门到精通学习路线年薪50万机器学习入门到精通教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程MySQL入门到精通教程
查看: 395|回复: 0

FIS前端集成解决方案

[复制链接]
  • TA的每日心情
    奋斗
    4 天前
  • 签到天数: 802 天

    [LV.10]以坛为家III

    2053

    主题

    2111

    帖子

    72万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    726006
    发表于 2021-6-2 19:18:13 | 显示全部楼层 |阅读模式
    FIS前端集成解决方案-文档结构
        什么是FIS
        部署FIS
        FIS基本使用
        模块定义
        加载方式
        调用Tangram 2.0
        FIS开发实例   
    

     --附件下载--

    什么是FIS
    FIS提供了一套贯穿开发流程的开发体系和集成开发环境,为产品线提供前端开发底层架构,这能帮助工程师提高开发效率,沟通协作效率,快速实现需求并达到代码的最优化。
    
    部署FIS
    1.配置代理文件,在html页加上这样的语句
    F._fileMap({ '/static/js/Test.js': ['/static/js/Test1.js', '/static/js/Test2.js'] });
    F._fileMap的格式为:F._fileMap({'文件路径',['模块名称1','模块名称2','模块名称n']});
    
    FIS基本使用
    在FIS中,所有JavaScript文件都应该用模块的形式来书写,并且一个文件只包含一个模块。
    F.module:
    使用F.module来定义模块:
    F.module(name, function(require, exports){
        //bla bla
    },deps);
    
    name:当前模块的唯一标识,为模块所在文件的访问路径。
    
    fn:模块的main函数。
    
    require:模块函数第一个参数名称为require, 用来访问其他模块提供的 API。
    
    exports:exports 用来向外提供模块的 API.
    
    deps:deps是一个数组,表示当前模块的依赖列表。
    
    加载方式
    FIS JS框架通过Script DOM Element的方式来实现异步加载模块,这种方式适用于所有的浏览器,而且没有跨域的限制。
    这种方式的缺点是不能保证各个脚本的执行顺序。如果需要加载多个有依赖关系的脚本,我们可以使用use或者require方法。
    
    F.use:
    通过 use 方法,可以在页面中加载任意模块:
    F.use('tangram', function(baidu){
        baidu.dom.ready(function(){
            console.log('ready!');
        });
    });
    
    我们也可以use多个模块,
    F.use(['a', 'b'], function(a, b){
        //bla bla
    });
    
    require:
    require方法只能在模块的定义中使用,
    //模块a,模块的定义由工具自动生成 
    var t = require('tangram:base');
    var ec = require('fis:event');
    
    require请求模块的方式也是采用异步的方式,在模块的main函数执行之前,框架会采用异步的方式去请求所有require的模块,
    当所有模块加载成功后才会执行这个模块的main函数,也就是当运行到 var t = require('tangram') 语句的时候 tangram 模块已经加载进来了。
    
    调用Tangram 2.0
    
    FIS开发平台内置tangram通用库,开发者不需要自己下载tangram即可使用。
    可以通过F.use来使用tangram模块:
    F.use('tangram', function(baidu){
     
    });
    
    也可以在module内部通用require来使用tangram模块:
    var baidu = require('tangram');
    FIS开发实例
    1.调用佚名函数
    //F.module定义佚名函数:
    F.module("/fis/static/js/fn.js", function (e, c) {
        (function () {
            alert('fis调用佚名函数');
        })()
    },[]);
    //F.use调用佚名函数
    F.use('/fis/static/js/fn.js');
    
    2.调用Object对象
    //F.module定义:
    F.module("/fis/static/js/obj.js", function (r, e) {
        var obj = {
            pro: 'obj成员属性',
            fn: function () {
                return 'obj成员函数';
            }
        };
        return obj; //模块返回对象
    }, []);
    //F.use调用Object对象
    F.use('/fis/static/js/obj.js',function (o) {
        alert(o.pro);
        alert(o.fn());
    }, []);
    
    3.调用prototype原型对象
    //F.module定义prototype原型对象:
    F.module("/fis/static/js/prototype.js", function (r, e) {
        function fn(){}
        fn.prototype = {
            pro: 'fn成员属性',
            fn: function () {
                return 'fn成员函数';
            }
        }
        return new fn(); //模块返回对象
    }, []);
    //F.use调用prototype原型对象
    F.use('/fis/static/js/prototype.js', function (o) {
        alert(o.pro);
        alert(o.fn());
    }, []);
    
    4.调用多个模块
    //F.use调用多个模块
    F.use(['/fis/static/js/obj.js', '/fis/static/js/prototype.js'], function (a, b) {
        alert(a.pro);
        alert(b.fn());
    },[]);
    
    5.使用require请求模块
    //F.module定义obj对象:
    F.module("/fis/static/js/out-obj", function (r, e) {
        var obj = {
            pro: 'obj成员属性',
            fn: function () {
                return 'obj成员函数';
            }
        };
        return obj; 
    });
    //F.模块内容使用require请求模块
    F.module("/fis/static/js/out.js", function (r, e) {
        var t = r('/fis/static/js/out-obj'); //require('模块名称');必须预先定义好
        return t;
    }, []);
    //F.use调用模块
    F.use('/fis/static/js/out.js', function (o) {
        alert(o.pro);
    }, [])
    
    6.使用F._fileMap配置多模块文件
    //F.module定义多模块文件(/fis/static/js/map.js):
    F.module("/fis/static/js/a.js", function (r, e) {
        var obj = {
            pro: 'map成员属性'
        };
        return obj;
    }, []);
    F.module("/fis/static/js/b.js", function (r, e) {
        var obj = {
            fn: function () {
                return 'map成员函数';
            }
        };
        return obj; 
    }, []);
    
    //F._fileMap配置调用模块
    F._fileMap({ '/fis/static/js/map.js': ['/fis/static/js/a.js', '/fis/static/js/b.js'] });
    
    //F.use调用多个模块
    F.use(['/fis/static/js/a.js', '/fis/static/js/b.js'], function (a,b) {
        alert(a.pro);
        alert(b.fn());
    }, []);
    
    //7.FIS与jQuery模块结合
    需要修改jQuery代码
    F.module("jQuery", function(require, exports){
        (function(){
            //jQuery code
        })(exports);
    },[]);
    
    //F._fileMap配置jQuery文件定义为jQuery模块
    F._fileMap({ '/fis/static/js/jquery.fis.js': ['jQuery'] });
    
    //F.use调用jQuery模块
    F.use("jQuery", function (X) {
        $(function () {
            alert('call jQuery'); //Hello Text
        })
    });
    
    8.FIS与独立的jQuery对象结合jQuery代码不需要做任何修改
    直接调用jQuery.js
    <script src="/static/js/jquery.js" type="text/javascript"></script>
    
    //F.module定义模块:
    F.module("/fis/static/js/jq.js", function (b, a) {
        var c = (function (h) {
            var f = function (m) {
                return m;
            };
            var g = function (j) {
                return j;
            };
            return {
                n: f,
                m: g
            }
        })(jQuery);
        return c;
    }, []);
    
    F.use调用模块
    F.use("/fis/static/js/jq.js", function (o) {
        alert(o.n('n'));
        alert(o.m('m'));
    });

     

    哎...今天够累的,签到来了1...
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|小黑屋|Java自学者论坛 ( 声明:本站文章及资料整理自互联网,用于Java自学者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

    GMT+8, 2024-11-15 10:12 , Processed in 2.006218 second(s), 29 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2021, Tencent Cloud.

    快速回复 返回顶部 返回列表