百度开源的 MVVM 组件框架 SAN - 12.6K
SAN是百度开源的一款轻量级MVVM组件框架,只有12.6K的文件大小,但提供了丰富的功能和兼容IE6的能力。本文将详细介绍SAN框架的特性以及如何使用。
SAN框架的特性
数据驱动视图
SAN采用了MVVM的模式,将数据与视图分离。通过组件中的数据定义实现数据与视图的绑定,当数据发生改变时,视图也会自动更新。
---- ------ --- ---------- ---------------------- ----------- -------- ------ --- ---- ----- ------ ------- --------------------- ------ - ------ - -------- ------- ----- - - -- ---------
灵活的组件化思想
SAN采用组件化思想,将页面拆分为多个独立的组件,每个组件都可以包含自己的数据与逻辑,并可以嵌套、复用和组合成更大的组件。
---- ----- --- ---------- ----- ---------------- --------------------- ----------------------------------------- ------ ----------- -------- ------ --- ---- ----- ------ -------------- ---- ------------------ ------ ------- --------------------- ----------- - ------------------ -------------- -- ------ - ------ - -------- ------- ----- - -- ------------- - ----------------- - -- --------- ---- ----- --- ---------- ---- ------------------------------------ ----------- -------- ------ --- ---- ----- ------ ------- --------------------- ---------- - ------ - -------- -- - -- --------- - ------------------ - -- ---------
丰富的指令和事件
SAN提供了丰富的内置指令和事件,方便开发者实现各种交互效果。
指令
if
:根据条件渲染DOMfor
:循环渲染DOMclass
:绑定classstyle
:绑定styleshow
:根据条件显示/隐藏DOM
---------- ----- ---- ---------------- -- ---- ---- -- ---------- ---- --- ----------- -- ------------------- ----- ---- ------------------- ----------------- ---- ------------------ ------------------ ---- -------------------- ------ -----------
事件
on-click
:点击事件on-mouseenter
:鼠标进入事件on-mouseleave
:鼠标离开事件on-change
:表单元素值改变事件on-submit
:表单提交事件
---------- ---- ----------------------------- ------ ----------- ------------------------- ----- -------------------------------- -----------
如何使用SAN框架
安装
通过npm安装SAN:
--- ------- --- ------
快速上手
在HTML中引入SAN的JS文件和开发的组件文件:
--------- ----- ------ ------ ----- ---------------- ---------- ------------ ------- ---------------------------------------------- ------- ------------------------ ------- ------ ---- --------------- ------- -------
在JavaScript中定义并挂载一个根组件到DOM节点上:
------ --- ---- ----- ------ --- ---- ------- ----- --- - --- ----- ---------- - ----------------------------------------------------------- -------- ---------------------------------------------------------------------------------------