SolidJS响应式原理和简易实现

文章首发公众号:萌萌哒草头将军

最近有🎁,感兴趣的小伙伴快去关注我了解详情吧

完整源码公众号回复solid获得

💡相关阅读

学不完的框架,🐔啄不完的米,SolidJS,你到底爱谁?😘

演练场地址Solid Playground

上篇文章中主要介绍了Solid JS的基本语法,分阶段粗略地介绍了一些原理(响应式原理、编译原理和运行时原理)。

接下来的几篇文章里我会详细介绍每个阶段的详细实现原理,希望可以给你的学习带来帮助。

写这篇文章的时候有很大的犹豫,担心Solid JS受众太小,文章的反响连”平平“都算不上,所以先写一篇试试水,如果真的反响平平,我会暂时放弃这个写作计划,还请见谅!

响应式原理

作为Solid JS响应式的基石,我们先看看createSignal的用法和原理。接着我们手动实现一个简易版的createSignal,

💎 万恶之源createSignal

🚗 用法

function createSignal<T>(
    initialValue: T,
    options?: { equals?: false | ((prev: T, next: T) => boolean) }
): [get: () => T, set: (v: T) => T];

Solid JS的厉害之处是,你可以定义变量是否为响应式,甚至可以定义响应式的时机。

  • 🍎 仅提供initialValue时,(默认)是响应式的。

  • 🍎 在options设置equalsfalse时不管何时都是响应式。

  • 🍎 equals设置为函数,根据新值和旧值的关系来设置何时为响应式。

🚗 例子

下面这个例子仅仅在新的值大于旧的值(新增)时,才是响应式的。

import { render } from "solid-js/web";
import { createSignal } from "solid-js";

function Counter() 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值