js

基于ES5的prototype进行模块化开发

2019-02-12  本文已影响0人  imxiaochao

目前前端的模块化开发/多人协作开发基本上分为以下几类:

页面结构开发

首先编写好页面的基础html结构和基础js,主要是在js文件内进行模块隔离,参考如下代码

// 如index页面
// index.js
// 首先定义一个index的ES5类,并且定义好该类的初始化方法及内部定义模块并对其进行实例化
function Index(){
    this.CONST()
    this.INIT()
}
Index.prototype.CONST = function(){
    // 在这里定义页面内部的局部变量,并且不会污染外部环境,统一使用自定义的get/set方法进行存取
    var data = {
        val1: '123',
        val2: '234'
    }
    this.get = function(key){
        return data[key]
    }
    this.set = function(key,val){
        data[key] = val
    }
}
Index.prototype.INIT = function(){
    
}
var index = new Index()

编写页面的结构模块

在完成页面类的基础结构后,根据不同页面功能编写功能模块,比如页面内的查询参数可以当作独立模块,表格也可以当作独立模块,多人开发时,个人开发独立的模块即可,模块之间通过类内部的方法(接口)进行通信

Index.prototype.SearchValues = function(){
    var self = this
    var queryParams = {}
    // 对外暴露获取参数的接口/方法,但不会暴露内部变量
    self.getQueryParams = function(){
        return queryParams
    }
}
Index.prototype.TableModule = function(){
    var self = this
    var test = 123
    var initTable = function(){
        console.log(test)
    }
    // 同样对外暴露 initTable 方法
    self.renderTable = initTable
}
// 在定义好页面功能模块及需要初始化的方法之后,在INIT模块内进行如下处理

Index.prototype.INIT = function(){
    //首先加载各功能模块
    this.SearchValues()
    this.TableModule()
    // 模块加载完成之后再初始化功能
    this.renderTable()
}
上一篇下一篇

猜你喜欢

热点阅读