bingojs2MV分离引擎

联合创作 · 2023-09-19 11:34

一、概述



  • bingoJS 2版本只专心做MV分离引擎,提供MV分离所需的模板、JS、加载和服务提供机制;


  • 可以认为所有东西由指令组装而成,由于指令化比组件化控制的粒度要小,所以可以很简单模拟出面向组件化或面向功能业务来开发。


  • 简单:可当一个artTemplate之类模板来使用


  • 强大:使用view和controller+route系统,可以支持强大的前端系统



二、特性


    1、新的模板语法


  • 更为强大和易用,如果有用过腾讯artTemplate之类模板,基本会用了;可以简单理解为类似的模板语法基础上增加了绑定特性:



    2、完全虚拟化


  • 完全虚拟化与dom操作隔离



    3、layout(布局)


  • layout就是将编译结果回写到dom树的时机, 它会在适合的时机回写(异步),可以让浏览器渲染顺畅很多,并占用CPU明显少很多( demo )



    4、全新的观察方式


  • 使用setter和getter方式,重新实现观察方式,并可以在复杂的表达式里做到只绑定相关的变量,几乎可以不使用update之类的方法与view手动同步数据



    5、Promise(承诺)


  • 遵从Promise A+规范


  • 全程使用Promise控制异步编译


  • 在定义指令或合适的地方返回Promise控制编译效率



    6、自由组装的指令(command)


  • 以自由组装为理念, 更为强大易用,使用指令可以组装任何想要的场景:



    7、view 与 controller


  • 为了简化学习成本, 可以简单理解为所有业务(如一个列表管理页面)或定义一个指令,都对应一个模板(view)和一份JS(controller,处理view显示逻辑)



    8、更明确的App


  • 一个app可以认为一个项目或一个产品工程,作用在于更明确的管理项目和方便日后项目的合并与拆分;




    9、自动识别动态加载service


    10、更强大和精准的route


  • route管理以下配置:




  1. 资源资源存放位置


  2. 模块名称,如定义app.controller('user/list'...,这里的模块名称“user/list”


  3. 加载方式,如, 可以配置成ajax,url,websocket等方式加载资源



  • 总的来说,route是管理工程的资源结构、规划模块和加载方式


  •     11、其它


    • 兼容IE9及以上的浏览器


    • 核基于原生方法,不依赖任何框架


    浏览 17
    点赞
    评论
    收藏
    分享

    手机扫一扫分享

    编辑 分享
    举报
    评论
    图片
    表情
    推荐
    点赞
    评论
    收藏
    分享

    手机扫一扫分享

    编辑 分享
    举报