关于组件 (不定时更新)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于组件 (不定时更新)相关的知识,希望对你有一定的参考价值。

1.组件的定义和加载

tabview.css

.menu{}

.content{}

tabview.js

var abc=5;
function TabView(cfg){
    this.a=cfg.a;
    this.b=cfg.b;
}
TabView.prototype={
    c:function(){ abc++ },
    d:function(){ abc-- }
}

tabview.html

<head>
    <link rel="stylesheet" href="tabview.css">
</head>
<body>
    <script src=‘tabview.js‘></script>
    <script>
        (function(){
            var tabView=new TabView();
        })();
    </script>
</body>

2.css命名空间和js匿名空间,防止css和js的命名冲突

①css通过加前缀形成命名空间

tabview.css

.tabview_menu{}

.tabview_ content{}

 treeview.css

.treeview_menu{}

.treeview_ content{}

②js通过匿名空间隔开公有私有(闭包)

tabview.js

(function(){
    var abc=5;
    function TabView(cfg){
        this.a=cfg.a;
        this.b=cfg.b;
    }
    TabView.prototype={
        c:function(){ abc++ },
        d:function(){ abc-- }
    }
    window.TabView=TabView;
})();

treeview.js

(function(){
    var abc=100;
    function TreeView(cfg){
        this.a=cfg.a;
        this.b=cfg.b;
    }
    TreeView.prototype={
        c:function(){ abc*=2 },
        d:function(){ abc/=2 }
    }
    window.TreeView=TreeView;
})();

3.组件的依赖关系

①增加一个有依赖关系的组件

<head>
    <link rel="stylesheet" href="animate.js">
    <link rel="stylesheet" href="tabview.js">
    <link rel="stylesheet" href="treeview.js">
</head>
<body>
    <script src=‘tabview.js‘></script>
    <script>
        (function(){
            var tabView=new TabView({
                animate: new Animate()
            });
        })();
    </script>
</body>

问题:

1.需手动处理组件间的依赖关系

2.加载项太多,破坏页面的整洁度

②模块化和require.js

define定义模块

mode1.js

define(function(){
    return { a:3 };
});

mode2.js

define( [ ‘mode1‘ ],function( m1 ){
    var a,b=2,c=3;
    a=c*m1.a;
    return{
        a: a
        b: b
    };
});

main.js

require( [ ‘mode2‘ ],function(m2){
    alert( m2.a*m2.b );
});

index.html

<body>
    <script src=‘js/require.js‘ data-main=‘js/main‘></script>
</body>

③基于require.js重写代码

 

以上是关于关于组件 (不定时更新)的主要内容,如果未能解决你的问题,请参考以下文章

Android:当用户在导航组件、单活动应用程序中回击片段 B 时更新片段 A

使用导航架构组件添加(而不是替换)片段

[react] 怎么定时更新一个组件?

C#关于定时器和多线程中对控件的操作以及界面假死的现象。

测试片段不执行定时器或示例超时

使用 NavController 从片段导航到另一个片段