Skip to main content

仿制VUE reactivity

目前仅支持自定义类和字符串、数字,无法监听数组等的变化,需要大佬帮助。

Usage

from reactivity import *

ref

effect(lambda: (print(v.value)))
v = ref(0)
v.value += 1 # 会自动触发注册的effect函数 

reactive

@dataclass
class Person:
    name: str
    age: int

effect(lambda: (print(obj.name) if obj.age else None))
obj = reactive(Person('wei', 21))
obj.name = 'waa' # 会自动触发注册的effect函数 

computed

v = ref(0)
# effect(lambda: (print(v.value)))
v.value += 1
ok = ref(0)
a = computed(lambda: v.value + 1 if ok.value else 999)
v.value += 1
v.value += 1
ok.value = 1
print(a.value)

#当ok.value被切换成1时,a.value会被自动更新成v.value + 1 而第1 、 2次v.value++都不会改变a.value的值。

参考

https://www.vuemastery.com/courses/vue-3-reactivity/vue3-reactivity

https://www.vuemastery.com/courses/vue3-deep-dive-with-evan-you/vue3-overview/

Vuejs设计与实现

https://github.com/cuixiaorui/mini-vue/tree/master/packages/reactivity/src

Release files for reactivity 0.0.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for reactivity 0.0.2
File Size Uploaded
reactivity-0.0.2.tar.gz 2.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for reactivity 0.0.2
File Interpreter ABI Platform
reactivity-0.0.2-py3-none-any.whl Python 3 none any Details

Total release size: 5.1 kB

Release files / reactivity-0.0.2.tar.gz

Download URL reactivity-0.0.2.tar.gz
Size 2.5 kB
Tags Source
SHA-256 checksum
How to use checksums
1131157e94616aff7e136eaaec0052697d2ec0471b283ce352598658072a1c00
BLAKE2b-256 checksum
How to use checksums
7d4c837c1e31998ea62d699f28d6a5ddb32e6bdb17386390a3b9e6f5485088cc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.9.7

Release files / reactivity-0.0.2-py3-none-any.whl

Download URL reactivity-0.0.2-py3-none-any.whl
Size 2.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
51cf65afc67d57f138c8124bdcba3a4a6a4c03d0dac4895d9735bed3dbd33aa8
BLAKE2b-256 checksum
How to use checksums
3bbc0370edf2402c3d812e6a3d040361ebc2a39d82a77fe99844a50d23f49299
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.9.7

Release history Release notifications | RSS feed

This release

0.0.2 This release

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page