百度 EFE 打造的 MVVM 组件框架 San | 软件推介

2018 年 1 月 18 日 开源中国 百度


San 是一个 MVVM 的组件框架。它体积小巧(12K),兼容性好(IE6),性能卓越,是一个可靠、可依赖的实现响应式用户界面的解决方案。

授权协议:MIT

开发语言:JavaScript HTML/CSS 

操作系统:跨平台

开发厂商:百度


San 是一个 MVVM 的组件框架。它体积小巧(12K),兼容性好(IE6),性能卓越,是一个可靠、可依赖的实现响应式用户界面的解决方案。



San 具有以下特性



San 通过声明式的类 HTML 视图模板,在支持所有原生 HTML 的语法特性外,还支持了数据到视图的绑定指令、业务开发中最常使用的分支、循环指令等,在保持良好的易用性基础上,由框架完成基于字符串的模板解析,并构建出视图层的节点关系树,通过高性能的视图引擎快速生成 UI 视图。


San 中定义的数据会被封装,使得当数据发生有效变更时通知 San 组件,San 组件依赖模板编译阶段生成的节点关系树,确定需要变更的最小视图,进而完成视图的异步更新,保证了视图更新的高效性。


组件是 San 的基本单位,是独立的数据、逻辑、视图的封装单元。


  • 从页面角度看,组件是 HTML 元素的扩展;

  • 从功能模式角度看,组件是一个 ViewModel。


San 组件提供了完整的生命周期,与 WebComponent 的生命周期相符合,组件间是可嵌套的树形关系,完整的支持了组件层级、组件间的通信,方便组件间的数据流转。San 的组件机制,可以有效支撑业务开发上的组件化需求。


San 支持组件反解,以此提供服务端渲染能力,可以解决纯前端渲染导致的响应用户交互时延长、SEO 问题。除此之外,San 还提供了一些周边开源产品,与 San 配合使用,可以帮助开发者快速搭建可维护的大型 SPA 应用。


现在,我们从一些简单的例子,开始了解 San。这些例子可以从这里找到。


Hello



可以看到,通常情况实用 San 会经过这么几步:


  1. 我们先定义了一个 San 的组件,在定义时指定了组件的 内容模板 与 初始数据 。

  2. 初始化组件对象

  3. 让组件在相应的地方渲染


额外提示:在 JavaScript 中书写 HTML 片段对维护来说是不友好的,我们可以通过 WebPack、AMD plugin、异步请求等方式管理。这里为了例子的简单就写在一起了。



推荐阅读

2017 码云最火爆开源项目 TOP 50,你都用过哪些?

2018 年 Java 平台发布计划之新特性展望

在 Node 的帮助下,横跨多平台的 JavaScript 已经赢了

《绝地求生》外挂源代码被公布,或迎神仙大战时代?

2017 开源中国新增开源项目排行榜 TOP 100

点击“阅读原文”查看更多精彩内容

登录查看更多
0

相关内容

超文本标记语言(英文:HyperText Markup Language,HTML)是为“网页创建和其它可在网页浏览器中看到的信息”设计的一种标记语言。
【2020新书】使用高级C# 提升你的编程技能,412页pdf
专知会员服务
56+阅读 · 2020年6月26日
FPGA加速系统开发工具设计:综述与实践
专知会员服务
63+阅读 · 2020年6月24日
华为发布《自动驾驶网络解决方案白皮书》
专知会员服务
121+阅读 · 2020年5月22日
Python导论,476页pdf,现代Python计算
专知会员服务
253+阅读 · 2020年5月17日
【实用书】Python爬虫Web抓取数据,第二版,306页pdf
专知会员服务
115+阅读 · 2020年5月10日
【新书】Java企业微服务,Enterprise Java Microservices,272页pdf
【干货】大数据入门指南:Hadoop、Hive、Spark、 Storm等
专知会员服务
94+阅读 · 2019年12月4日
机器学习相关资源(框架、库、软件)大列表
专知会员服务
37+阅读 · 2019年10月9日
用Now轻松部署无服务器Node应用程序
前端之巅
16+阅读 · 2019年6月19日
美团:基于跨平台框架Flutter的动态化平台建设
前端之巅
14+阅读 · 2019年6月17日
从webview到flutter:详解iOS中的Web开发
前端之巅
5+阅读 · 2019年3月24日
34个最优秀好用的Python开源框架
专知
9+阅读 · 2019年3月1日
解读2018:13家开源框架谁能统一流计算?
AI前线
3+阅读 · 2018年12月17日
跨框架深度学习可视化框架 VisualDL | 软件推介
开源中国
3+阅读 · 2018年4月26日
开源神经网络框架Caffe2全介绍
北京思腾合力科技有限公司
3+阅读 · 2017年12月12日
前端高性能计算(4):GPU加速计算
前端大全
7+阅读 · 2017年10月26日
Gluon —— 微软和亚马逊联合推出深度学习库
开源中国
7+阅读 · 2017年10月24日
开源巨献:阿里巴巴最热门29款开源项目
算法与数据结构
5+阅读 · 2017年7月14日
Arxiv
23+阅读 · 2018年10月24日
Arxiv
5+阅读 · 2018年10月23日
Arxiv
11+阅读 · 2018年1月11日
VIP会员
相关VIP内容
【2020新书】使用高级C# 提升你的编程技能,412页pdf
专知会员服务
56+阅读 · 2020年6月26日
FPGA加速系统开发工具设计:综述与实践
专知会员服务
63+阅读 · 2020年6月24日
华为发布《自动驾驶网络解决方案白皮书》
专知会员服务
121+阅读 · 2020年5月22日
Python导论,476页pdf,现代Python计算
专知会员服务
253+阅读 · 2020年5月17日
【实用书】Python爬虫Web抓取数据,第二版,306页pdf
专知会员服务
115+阅读 · 2020年5月10日
【新书】Java企业微服务,Enterprise Java Microservices,272页pdf
【干货】大数据入门指南:Hadoop、Hive、Spark、 Storm等
专知会员服务
94+阅读 · 2019年12月4日
机器学习相关资源(框架、库、软件)大列表
专知会员服务
37+阅读 · 2019年10月9日
相关资讯
用Now轻松部署无服务器Node应用程序
前端之巅
16+阅读 · 2019年6月19日
美团:基于跨平台框架Flutter的动态化平台建设
前端之巅
14+阅读 · 2019年6月17日
从webview到flutter:详解iOS中的Web开发
前端之巅
5+阅读 · 2019年3月24日
34个最优秀好用的Python开源框架
专知
9+阅读 · 2019年3月1日
解读2018:13家开源框架谁能统一流计算?
AI前线
3+阅读 · 2018年12月17日
跨框架深度学习可视化框架 VisualDL | 软件推介
开源中国
3+阅读 · 2018年4月26日
开源神经网络框架Caffe2全介绍
北京思腾合力科技有限公司
3+阅读 · 2017年12月12日
前端高性能计算(4):GPU加速计算
前端大全
7+阅读 · 2017年10月26日
Gluon —— 微软和亚马逊联合推出深度学习库
开源中国
7+阅读 · 2017年10月24日
开源巨献:阿里巴巴最热门29款开源项目
算法与数据结构
5+阅读 · 2017年7月14日
Top
微信扫码咨询专知VIP会员