Skip to content
Hex edited this page Jul 15, 2021 · 22 revisions

引入 jQuery

<script src="https://res.cdn.changbaimg.com/!/jquery/1.12.4-1/jquery.min.js"></script>

引入 Transformers 框架

<script src="https://res.cdn.changbaimg.com/!/transformers/1.3.5/transformers.min.js"></script>

开始使用

1. 编写组件容器

<!doctype html>
<html>
<head>
    <title>Hello World</title>
    <meta charset="utf-8" />
    <script src="https://res.cdn.changbaimg.com/!/jquery/1.12.4-1/jquery.min.js"></script>
    <script src="https://res.cdn.changbaimg.com/!/transformers/1.3.5/transformers.min.js"></script>
</head>
<body>

<div id="content" class="TFComponent">
    <div>
        <!--
            指定 tf-action-click 属性会给此元素绑定 click 事件
            事件处理器是组件的 testAction 方法
        -->
        <button type="button" tf-action-click="test">测试</button>
    </div>

    <!-- content 模板的目标渲染节点 -->
    <div class="TFTarget-content"></div>

    <!-- 名为 content 的模板 -->
    <script type="text/html" class="TFTemplate-content">
    你好!世界!
    </script>
</div>

</body>
</html>

2. 创建应用程序

// 创建应用程序
TF.Core.Application.create({
    baseUrl: "./"
});

3. 创建组件 Home

// 定义名为 Home 的组件
TF.define('Home', {
    // 组件 DOM 准备完毕回调函数
    DomReady: function() {
        console.log('ready!');
    },

    // Action 是组件对外的接口
    test: function(args) {
        console.log('test!');

        // 渲染静态模板
        this.sys.renderStaticTemplate('content');

        this.renderOk();
    },

    // 组件私有方法,外部无法访问
    renderOk: function() {
        console.log('render OK!');
    }
});

4. 注册组件

// 添加名为 Home 的组件到组件管理器中
TF.Core.ComponentMgr.add([{
    name: 'Home',
    appendRender: false,
    lazyRender: false,
    hide: false,
    applyTo: '#content'
}]);

5. 启动应用程序

// 等待 DOM Ready
TF.ready = function(){
    // 启动应用程序
    TF.Core.Application.bootstrap();
};

实例

<!doctype html>
<html>
<head>
    <title>Hello World</title>
    <meta charset="utf-8" />
    <script src="https://res.cdn.changbaimg.com/!/jquery/1.12.4-1/jquery.min.js"></script>
    <script src="https://res.cdn.changbaimg.com/!/transformers/1.3.5/transformers.min.js"></script>
</head>
<body>

<div id="content" class="TFComponent">
    <div>
        <!--
            指定 tf-action-click 属性会给此元素绑定 click 事件
            事件处理器是组件的 testAction 方法
        -->
        <button type="button" tf-action-click="test">测试</button>
    </div>

    <!-- content 模板的目标渲染节点 -->
    <div class="TFTarget-content"></div>

    <!-- 名为 content 的模板 -->
    <script type="text/html" class="TFTemplate-content">
    你好!世界!
    </script>
</div>

<script>
// 创建应用程序
TF.Core.Application.create({
    baseUrl: "./"
});

// 定义名为 Home 的组件
TF.define('Home', {
    // 组件 DOM 准备完毕回调函数
    DomReady: function() {
        console.log('ready!');
    },

    // Action 是组件对外的接口
    test: function(args) {
        console.log('test!');

        // 渲染静态模板
        this.sys.renderStaticTemplate('content');

        this.renderOk();
    },

    // 组件私有方法,外部无法访问
    renderOk: function() {
        console.log('render OK!');
    }
});

// 添加名为 Home 的组件到组件管理器中
TF.Core.ComponentMgr.add([{
    name: 'Home',
    appendRender: false,
    lazyRender: false,
    hide: false,
    applyTo: '#content'
}]);

// 等待 DOM Ready
TF.ready = function(){
    // 启动应用程序
    TF.Core.Application.bootstrap();
};
</script>

</body>
</html>