关于的新版H5游戏中心的总结

项目开始前的思考:

  • 采用动静结合的方式,缓解服务器压力(然而也没什么压力)
  • 组件化、模块化,采用CMD规范(fis3-smarty不是那么兼容amd,好吧我太懒没有深入研究这块,最后用了百度提供的mod.js,也挺好用)
  • 数据和结构分离(smarty、art-template)

项目依赖的工具与技术:

  • fis3
  • fis3-smarty
  • mod.js
  • art-template
  • 插件:es6-babel、node-sass、autoprefixer 等。

项目的目录结构:

components目录:项目所用到的js组件(js库、功能模块等)

page目录:页面模板目录

plugin目录:本地模拟数据预览用到的模板解析插件(可忽略)

static目录:存放图片,公共样式,公共脚本

test目录:本地模拟数据

widget目录:模板组件目录


fis-conf.js主要配置
fis.hook('commonjs',{
baseUrl: 'components/',
extList: ['.js', '.es']
});
fis.match("components/**", {
isMod: true,
useSameNameRequire: true
});
fis.match("widget/**", {
isMod: false,
useSameNameRequire: true
});
/ 启用 es6-babel 插件,解析 .es 后缀为 .js
fis.match('**.es', {
  rExt: '.js',
  parser: fis.plugin('es6-babel')
});
// 启用node-sass 插件 , 解析 .scss 后缀为 .css
fis.match('*.scss', {
  rExt: '.css',
  preprocessor : fis.plugin("autoprefixer",{
    "browsers": ["Android >= 2.1", "iOS >= 4", "ie >= 8", "firefox >= 15"],
    "cascade": true
  }),
  parser: fis.plugin('node-sass', {
    // include_paths: [
    //   './src/scss',
    //   './components/compass-mixins'
    // ]
  })
});
// widget目录下存放的html文件是arttemplate模板文件,不需要发布
fis.match('widget/{*,**/*}.html', {
    release: false
});

需要动态加载的数据的组件使用前端模板的优点是:

1.提高可维护性 2.代码结构更加清晰 3.数据更容易控制 4.降低耦合性

(此处为什么要用html作为模板后缀名,主要是利用fis对html 文件编译处理会重新定位资源路径,目前尝试了一些配置去改变模板文件的后缀,但是还没有找到可行的方法; 模板文件会在编译阶段直接引入到js文件,依赖fis在js文件的内容嵌入功能:__inline(‘xxx.html’))

 

 

存在的问题:

最主要的问题是缓存,由于页面都是需要后端生成,静态的页面会有缓存

 

发表评论

邮箱地址不会被公开。 必填项已用*标注