Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings
/dobPublic

Commitebb4b06

Browse files
committed
add examples
1 parent3b83d5a commitebb4b06

File tree

2 files changed

+16
-22
lines changed

2 files changed

+16
-22
lines changed

‎readme.md‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,7 @@ ReactDOM.render(
8181

8282
-[dob-react simple example](https://github.com/ascoders/dob-example)
8383
-[dob-react hackernews](https://github.com/dobjs/dob-react-hackernews)
84+
-[dob-react todoMVC](https://github.com/dobjs/dob-react-todomvc)
8485
-[dob-react complex online web editor](https://github.com/ascoders/gaea-editor)
8586
-[dob-redux todoMVC](https://github.com/dobjs/dob-redux-todomvc)
8687

‎src/observer.ts‎

Lines changed: 15 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -6,63 +6,57 @@ import { Func, getBinder, inAction, isPrimitive } from "./utils"
66
constMAX_RUN_COUNT=1000
77

88
/**
9-
* ========================
10-
* 函数
11-
* ========================
9+
* Create observable wrapper.
1210
*/
13-
14-
/**
15-
* 获取可观察的对象
16-
*/
17-
functionobservableObject<Textendsobject>(obj:T={}asany):T{
11+
functioncreateObservableObject<Textendsobject>(obj:T={}asany):T{
1812
if(isPrimitive(obj)){
19-
throwTypeError(`${obj} 是基本类型,dob 仅支持非基本类型`)
13+
throwTypeError(`dob not support${obj}, because it is a basic type.`)
2014
}
2115

2216
if(globalState.proxies.has(obj)){
2317
returnglobalState.proxies.get(obj)
2418
}
2519

26-
//proxy 惰性封装
20+
//Proxy inert packaging.
2721
returntoObservable(obj)
2822
}
2923

3024
/**
31-
*将 class 改造为可观察对象
25+
*Create observable decorator.
3226
*/
33-
functionobservableObjectDecorator(target:any){
27+
functioncreateObservableObjectDecorator(target:any){
3428
functionwrap(...args:any[]){
35-
returnobservableObject(newtarget(...args))
29+
returncreateObservableObject(newtarget(...args))
3630
}
3731
returnwrapasany
3832
}
3933

4034
/**
41-
*生成可观察的对象
35+
*Create observable object from origin object.
4236
*/
4337
functiontoObservable<Textendsobject>(obj:T):T{
4438
if(Object.getOwnPropertySymbols(obj).indexOf(globalState.ignoreDynamicSymbol)>-1){
45-
//如果对象忽略了动态化,直接返回
39+
//Ignore observable
4640
returnobj
4741
}
4842

4943
letdynamicObject:T
5044

5145
constbuiltIn=builtIns.get(obj.constructor)
5246
if(typeofbuiltIn==="function"||typeofbuiltIn==="object"){
53-
//处理 map weakMap set weakSet
47+
//support: map weakMap set weakSet.
5448
dynamicObject=builtIn(obj,bindCurrentReaction,queueRunReactions,proxyValue)
5549
}elseif(!builtIn){
5650
dynamicObject=newProxy(obj,{
5751
get(target,key,receiver){
5852
letvalue=Reflect.get(target,key,receiver)
5953

60-
//如果 key 是 $raw,或者在 Action 中,直接返回原始对象
54+
//Get origin object.
6155
if(key==="$raw"){
6256
returntarget
6357
}
6458

65-
//将子元素注册到 immutable,子元素可以找到其根节点对象,以及路径
59+
//Getter event.
6660
globalState.event.emit("get",{ target, key, value})
6761

6862
bindCurrentReaction(target,key)
@@ -73,10 +67,9 @@ function toObservable<T extends object>(obj: T): T {
7367
},
7468

7569
set(target,key,value,receiver){
76-
// 旧值
7770
constoldValue=Reflect.get(target,key,receiver)
7871

79-
//如果新值是对象,优先取原始对象
72+
//If the new value is an object, the original object is preferentially taken.
8073
if(typeofvalue==="object"&&value){
8174
value=value.$raw||value
8275
}
@@ -331,9 +324,9 @@ function runInAction(fn: () => any | Promise<any>, debugName?: string) {
331324

332325
functionobservable<T>(target:T={}asany):T{
333326
if(typeoftarget==="function"){// 挂在 class 的 decorator
334-
returnobservableObjectDecorator(target)
327+
returncreateObservableObjectDecorator(target)
335328
}else{// 包裹变量的
336-
returnobservableObject(targetasany)asT
329+
returncreateObservableObject(targetasany)asT
337330
}
338331
}
339332

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp