Skip to content

Commit 5e4ba60

Browse files
author
committed
Deployed 656623a with MkDocs version: 1.4.3
1 parent b89dd06 commit 5e4ba60

File tree

5 files changed

+139
-95
lines changed

5 files changed

+139
-95
lines changed

learn/responding-to-events/index.html

Lines changed: 40 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -2219,7 +2219,7 @@ <h1>Responding to Events 🚧</h1>
22192219
<h2 id="overview">Overview<a class="headerlink" href="#overview" title="Permanent link">&para;</a></h2>
22202220
<p class="intro">
22212221

2222-
React lets you add <em>event handlers</em> to your JSX. Event handlers are your own functions that will be triggered in response to interactions like clicking, hovering, focusing form inputs, and so on.
2222+
React lets you add <em>event handlers</em> to your PSX. Event handlers are your own functions that will be triggered in response to interactions like clicking, hovering, focusing form inputs, and so on.
22232223

22242224
</p>
22252225
<div class="admonition summary">
@@ -2231,39 +2231,65 @@ <h2 id="overview">Overview<a class="headerlink" href="#overview" title="Permanen
22312231
</ul>
22322232
</div>
22332233
<h2 id="adding-event-handlers">Adding event handlers<a class="headerlink" href="#adding-event-handlers" title="Permanent link">&para;</a></h2>
2234-
<p>To add an event handler, you will first define a function and then <a href="/learn/passing-props-to-a-component">pass it as a prop</a> to the appropriate JSX tag. For example, here is a button that doesn't do anything yet:</p>
2234+
<p>To add an event handler, you will first define a function and then <a href="../passing-props-to-a-component/">pass it as a prop</a> to the appropriate PSX tag. For example, here is a button that doesn't do anything yet:</p>
2235+
<div class="tabbed-set tabbed-alternate" data-tabs="1:2"><input checked="checked" id="__tabbed_1_1" name="__tabbed_1" type="radio" /><input id="__tabbed_1_2" name="__tabbed_1" type="radio" /><div class="tabbed-labels"><label for="__tabbed_1_1">app.py</label><label for="__tabbed_1_2"><span class="twemoji"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M8 5.14v14l11-7-11-7Z"/></svg></span> Run</label></div>
2236+
<div class="tabbed-content">
2237+
<div class="tabbed-block">
22352238
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">1</span>
22362239
<span class="normal">2</span>
2237-
<span class="normal">3</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">export</span><span class="w"> </span><span class="k">default</span><span class="w"> </span><span class="kd">function</span><span class="w"> </span><span class="nx">Button</span><span class="p">()</span><span class="w"> </span><span class="p">{</span>
2238-
<span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="o">&lt;</span><span class="nx">button</span><span class="o">&gt;</span><span class="nx">I</span><span class="w"> </span><span class="nx">don</span><span class="err">&#39;</span><span class="nx">t</span><span class="w"> </span><span class="k">do</span><span class="w"> </span><span class="nx">anything</span><span class="o">&lt;</span><span class="err">/button&gt;;</span>
2239-
<span class="p">}</span>
2240+
<span class="normal">3</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="nd">@component</span>
2241+
<span class="k">def</span> <span class="nf">button</span><span class="p">():</span>
2242+
<span class="k">return</span> <span class="n">html</span><span class="o">.</span><span class="n">button</span><span class="p">(</span><span class="s2">&quot;I don&#39;t do anything&quot;</span><span class="p">)</span>
2243+
</code></pre></div></td></tr></table></div>
2244+
</div>
2245+
<div class="tabbed-block">
2246+
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">1</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="c1"># TODO</span>
22402247
</code></pre></div></td></tr></table></div>
2248+
</div>
2249+
</div>
2250+
</div>
22412251
<p>You can make it show a message when a user clicks by following these three steps:</p>
22422252
<ol>
2243-
<li>Declare a function called <code>handleClick</code> <em>inside</em> your <code>Button</code> component.</li>
2244-
<li>Implement the logic inside that function (use <code>alert</code> to show the message).</li>
2245-
<li>Add <code>on_click={handleClick}</code> to the <code>&lt;button&gt;</code> JSX.</li>
2253+
<li>Declare a function called <code>handle_click</code> <em>inside</em> your <code class="highlight"><span class="k">def</span> <span class="nf">button</span><span class="p">():</span></code> component.</li>
2254+
<li>Implement the logic inside that function (use <code>print</code> to show the message).</li>
2255+
<li>Add <code>on_click=handle_click</code> to the <code>html.button</code> PSX.</li>
22462256
</ol>
2257+
<div class="tabbed-set tabbed-alternate" data-tabs="2:3"><input checked="checked" id="__tabbed_2_1" name="__tabbed_2" type="radio" /><input id="__tabbed_2_2" name="__tabbed_2" type="radio" /><input id="__tabbed_2_3" name="__tabbed_2" type="radio" /><div class="tabbed-labels"><label for="__tabbed_2_1">app.py</label><label for="__tabbed_2_2">styles.css</label><label for="__tabbed_2_3"><span class="twemoji"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M8 5.14v14l11-7-11-7Z"/></svg></span> Run</label></div>
2258+
<div class="tabbed-content">
2259+
<div class="tabbed-block">
22472260
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">1</span>
22482261
<span class="normal">2</span>
22492262
<span class="normal">3</span>
22502263
<span class="normal">4</span>
22512264
<span class="normal">5</span>
22522265
<span class="normal">6</span>
2253-
<span class="normal">7</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">export</span><span class="w"> </span><span class="k">default</span><span class="w"> </span><span class="kd">function</span><span class="w"> </span><span class="nx">Button</span><span class="p">()</span><span class="w"> </span><span class="p">{</span>
2254-
<span class="w"> </span><span class="kd">function</span><span class="w"> </span><span class="nx">handleClick</span><span class="p">()</span><span class="w"> </span><span class="p">{</span>
2255-
<span class="w"> </span><span class="nx">alert</span><span class="p">(</span><span class="s2">&quot;You clicked me!&quot;</span><span class="p">);</span>
2256-
<span class="w"> </span><span class="p">}</span>
2266+
<span class="normal">7</span>
2267+
<span class="normal">8</span>
2268+
<span class="normal">9</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="kn">from</span> <span class="nn">reactpy</span> <span class="kn">import</span> <span class="n">component</span><span class="p">,</span> <span class="n">html</span>
22572269

2258-
<span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="o">&lt;</span><span class="nx">button</span><span class="w"> </span><span class="nx">on_click</span><span class="o">=</span><span class="p">{</span><span class="nx">handleClick</span><span class="p">}</span><span class="o">&gt;</span><span class="nx">Click</span><span class="w"> </span><span class="nx">me</span><span class="o">&lt;</span><span class="err">/button&gt;;</span>
2259-
<span class="p">}</span>
2270+
2271+
<span class="nd">@component</span>
2272+
<span class="k">def</span> <span class="nf">button</span><span class="p">():</span>
2273+
<span class="k">def</span> <span class="nf">handle_click</span><span class="p">(</span><span class="n">event</span><span class="p">):</span>
2274+
<span class="nb">print</span><span class="p">(</span><span class="s2">&quot;You clicked me!&quot;</span><span class="p">)</span>
2275+
2276+
<span class="k">return</span> <span class="n">html</span><span class="o">.</span><span class="n">button</span><span class="p">({</span><span class="s2">&quot;on_click&quot;</span><span class="p">:</span> <span class="n">handle_click</span><span class="p">},</span> <span class="s2">&quot;Click me&quot;</span><span class="p">)</span>
22602277
</code></pre></div></td></tr></table></div>
2278+
</div>
2279+
<div class="tabbed-block">
22612280
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">1</span>
22622281
<span class="normal">2</span>
22632282
<span class="normal">3</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="nt">button</span><span class="w"> </span><span class="p">{</span>
22642283
<span class="w"> </span><span class="k">margin-right</span><span class="p">:</span><span class="w"> </span><span class="mi">10</span><span class="kt">px</span><span class="p">;</span>
22652284
<span class="p">}</span>
22662285
</code></pre></div></td></tr></table></div>
2286+
</div>
2287+
<div class="tabbed-block">
2288+
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">1</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="c1"># TODO</span>
2289+
</code></pre></div></td></tr></table></div>
2290+
</div>
2291+
</div>
2292+
</div>
22672293
<p>You defined the <code>handleClick</code> function and then <a href="/learn/passing-props-to-a-component">passed it as a prop</a> to <code>&lt;button&gt;</code>. <code>handleClick</code> is an <strong>event handler.</strong> Event handler functions:</p>
22682294
<ul>
22692295
<li>Are usually defined <em>inside</em> your components.</li>

learn/thinking-in-react/index.html

Lines changed: 21 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2245,7 +2245,13 @@ <h2 id="step-2-build-a-static-version-in-react">Step 2: Build a static version i
22452245
<span class="normal">54</span>
22462246
<span class="normal">55</span>
22472247
<span class="normal">56</span>
2248-
<span class="normal">57</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="nd">@component</span>
2248+
<span class="normal">57</span>
2249+
<span class="normal">58</span>
2250+
<span class="normal">59</span>
2251+
<span class="normal">60</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="kn">from</span> <span class="nn">reactpy</span> <span class="kn">import</span> <span class="n">component</span><span class="p">,</span> <span class="n">html</span>
2252+
2253+
2254+
<span class="nd">@component</span>
22492255
<span class="k">def</span> <span class="nf">product_category_row</span><span class="p">(</span><span class="n">category</span><span class="p">):</span>
22502256
<span class="k">return</span> <span class="n">html</span><span class="o">.</span><span class="n">tr</span><span class="p">(</span><span class="n">html</span><span class="o">.</span><span class="n">th</span><span class="p">({</span><span class="s2">&quot;colSpan&quot;</span><span class="p">:</span> <span class="s2">&quot;2&quot;</span><span class="p">},</span> <span class="n">category</span><span class="p">))</span>
22512257

@@ -2508,7 +2514,13 @@ <h2 id="step-4-identify-where-your-state-should-live">Step 4: Identify where you
25082514
<span class="normal">82</span>
25092515
<span class="normal">83</span>
25102516
<span class="normal">84</span>
2511-
<span class="normal">85</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="nd">@component</span>
2517+
<span class="normal">85</span>
2518+
<span class="normal">86</span>
2519+
<span class="normal">87</span>
2520+
<span class="normal">88</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="kn">from</span> <span class="nn">reactpy</span> <span class="kn">import</span> <span class="n">component</span><span class="p">,</span> <span class="n">html</span><span class="p">,</span> <span class="n">use_state</span>
2521+
2522+
2523+
<span class="nd">@component</span>
25122524
<span class="k">def</span> <span class="nf">filterable_product_table</span><span class="p">(</span><span class="n">products</span><span class="p">):</span>
25132525
<span class="n">filter_text</span><span class="p">,</span> <span class="n">set_filter_text</span> <span class="o">=</span> <span class="n">use_state</span><span class="p">(</span><span class="s2">&quot;&quot;</span><span class="p">)</span>
25142526
<span class="n">in_stock_only</span><span class="p">,</span> <span class="n">set_in_stock_only</span> <span class="o">=</span> <span class="n">use_state</span><span class="p">(</span><span class="kc">False</span><span class="p">)</span>
@@ -2787,7 +2799,13 @@ <h2 id="step-5-add-inverse-data-flow">Step 5: Add inverse data flow<a class="hea
27872799
<span class="normal">102</span>
27882800
<span class="normal">103</span>
27892801
<span class="normal">104</span>
2790-
<span class="normal">105</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="nd">@component</span>
2802+
<span class="normal">105</span>
2803+
<span class="normal">106</span>
2804+
<span class="normal">107</span>
2805+
<span class="normal">108</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="kn">from</span> <span class="nn">reactpy</span> <span class="kn">import</span> <span class="n">component</span><span class="p">,</span> <span class="n">html</span><span class="p">,</span> <span class="n">use_state</span>
2806+
2807+
2808+
<span class="nd">@component</span>
27912809
<span class="k">def</span> <span class="nf">filterable_product_table</span><span class="p">(</span><span class="n">products</span><span class="p">):</span>
27922810
<span class="n">filter_text</span><span class="p">,</span> <span class="n">set_filter_text</span> <span class="o">=</span> <span class="n">use_state</span><span class="p">(</span><span class="s2">&quot;&quot;</span><span class="p">)</span>
27932811
<span class="n">in_stock_only</span><span class="p">,</span> <span class="n">set_in_stock_only</span> <span class="o">=</span> <span class="n">use_state</span><span class="p">(</span><span class="kc">False</span><span class="p">)</span>

search/search_index.json

Lines changed: 1 addition & 1 deletion
Large diffs are not rendered by default.

0 commit comments

Comments
 (0)