LOGOSan

什么东西不要保存在 data 里?

编辑本文

我们知道,data 里应该存与视图相关的数据状态。我们在下面列举了一些不当的使用场景,这些场景是我们不止发现过一次的。

函数

不要把函数作为数据存放。函数应该是独立的,或者作为组件方法存在。

1
2
3
4
5
6
// bad
this.data.set('camel2kebab', function (source) {
return source.replace(/[A-Z]/g, function (match) {
return '-' + match.toLowerCase();
});
});

DOM 对象

这个应该不用解释吧。

1
2
// bad
this.data.set('sideEl', document.querySelector('sidebar'));

组件等复杂对象

不要使用数据来做动态子组件的管理。动态子组件对象可以直接存在组件的成员中。

1
2
3
4
5
6
7
8
9
// bad
var layer = new Layer();
layer.attach(document.body);
this.data.set('layer', layer);
// good
var layer = new Layer();
layer.attach(document.body);
this.layer = layer;

RESOURCES

教程

教程是入门的捷径,请从这里开始了解San。

指南

我们正在编写指南手册,以指导各种应用场景下怎么使用San。

示例

这里展示了一些简单例子,以及在实际项目如何使用San。

组件 API

当你想不起来组件的接口时,请查阅这里。

FACILITIES

Router

支持hash和html5模式的router,单页或同构的Web应用通常需要它。

Store

应用状态管理套件,其理念是类似flux的单向流。

Update

Immutable的对象更新库,和san-store配合进行应用状态数据更新。

MaterialUI组件库

基于material-design设计规范的组件库