Hacktoberfest 2026:维护者为十月标记出来的 issue,仍然开放、适合新手。 浏览 Hacktoberfest issue

[Content]: Add a concrete DOM-binding example to fine-grained reactivity

未关闭
#1,637 0 条评论 0 个 reaction 已指派 1 人 在 GitHub 查看

@LadyBluenotes 已经在做这个了。

开始于 2026年8月26日。

评估

这个 Issue 还没有评估数据。

描述

pending review
📚 Subject area/topic

Advanced Concepts / Fine-grained reactivity / DOM bindings

📋 Page(s) affected (or suggested, for new content)

https://docs.solidjs.com/advanced-concepts/fine-grained-reactivity

Source: src/routes/(1)advanced-concepts/(0)fine-grained-reactivity.mdx

📋 Description of content that is out-of-date or incorrect

The introduction explains that Solid updates a targeted attribute instead of re-executing an entire component, but the page does not currently demonstrate a DOM-attribute binding.

The first examples introduce createSignal and createEffect, then move into constructing a reactive system from scratch. A short JSX example after “Understanding signals” would connect the signal getter to the targeted-DOM-update claim made in the introduction.

I propose adding the following subsection:

Using signals in DOM bindings

Reading a signal in JSX creates a reactive connection between the signal and that part of the DOM.

import { createSignal } from "solid-js";

function ToggleButton() {
  const [pressed, setPressed] = createSignal(false);

  return (
    <button
      aria-pressed={pressed()}
      onClick={() => setPressed((value) => !value)}
    >
      {pressed() ? "Pressed" : "Not pressed"}
    </button>
  );
}

Solid runs ToggleButton once to create the button. The reads of pressed() create reactive bindings for the aria-pressed attribute and text node. When the signal changes, Solid updates those DOM targets without re-running the component function.

Framework comparison: Vue expresses a similar state-to-DOM relationship through v-bind. For a cross-framework explanation, see how Vue's v-bind connects reactive state to DOM attributes.

This example would:

  • Make the page’s “targeted attribute” statement concrete.
  • Show how signal reads in JSX participate in tracking.
  • Demonstrate an accessible state attribute.
  • Provide a concise framework comparison.
Affiliation disclosure

I maintain FrontendAtlas, and the optional Vue comparison link points to content I maintain.

I included it because that page explains Vue’s compilation, dependency-tracking, and attribute-patching path. The Solid example remains useful without this link, and I am happy for the link or the entire comparison note to be omitted if third-party comparisons are outside the page’s scope.

🖥️ Reproduction in StackBlitz (if reporting incorrect content or code samples)

Not applicable; this is a proposed explanatory example rather than a report of incorrect runtime behavior.

主要语言
MDX
星标
292
派生
361
平均合并
7 小时 51 分钟
30 天内合并 PR
1

贡献指南

打开贡献指南

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

solidjs/solid-docs 的其他 Issue

查看 solidjs/solid-docs 的全部 Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。