UNPKG

ydoc

Version:

基于 Markdown 的静态站点生成工具

145 lines (142 loc) 23.8 kB
<html><head><meta charSet="UTF-8"/><meta content="text/html; charset=utf-8" http-equiv="Content-Type"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"/><meta name="apple-mobile-web-app-capable" content="yes"/><meta name="apple-mobile-web-app-status-bar-style" content="black"/><link rel="apple-touch-icon" sizes="180x180" href="../ydoc/images/apple-touch-icon.png"/><link rel="icon" type="image/png" sizes="32x32" href="../ydoc/images/favicon-32x32.png"/><link rel="icon" type="image/png" sizes="16x16" href="../ydoc/images/favicon-16x16.png"/><link rel="manifest" href="../ydoc/images/manifest.json"/><link rel="mask-icon" href="../ydoc/images/safari-pinned-tab.svg&quot;" color="#5bbad5"/><meta name="theme-color" content="#ffffff"/><meta http-equiv="Cache-Control" content="no-transform"/><meta http-equiv="Cache-Control" content="no-siteapp"/><title>JSX-文档</title><link rel="stylesheet" href="../ydoc/styles/style.css"/><meta name="author" content="ymfe"/><meta name="keywords"/><meta name="description" content="ydoc description demo"/><meta id="releativePath" content=".."/><link rel="stylesheet" href="../ydoc/ydoc-plugin-search/search.css"/><link rel="stylesheet" href="../custom.css"/></head><body><div class="g-doc"><div class="m-summary" id="js-menu"><div class="m-summary-content" id="js-menu-content"><div class="m-summary-block"><ul class="m-summary-list"><li class="item"><a href="index.html" class="href">快速开始</a></li></ul></div><div class="m-summary-block"><div class="m-summary-title">教程</div><ul class="m-summary-list indent"><li class="item"><a href="structure.html" class="href">目录结构</a></li><li class="item"><a href="nav.html" class="href">导航</a></li><li class="item"><div class="m-summary-block"><a href="pages-index.html" class="href">页面</a><ul class="m-summary-list indent"><li class="item"><a href="pages-index.html" class="href">首页</a></li><li class="item"><a href="pages-book.html" class="href">文档页</a></li><li class="item"><a href="pages-custom.html" class="href">自定义页面</a></li></ul></div></li><li class="item"><a href="config.html" class="href">配置文件</a></li><li class="item"><a href="markdown.html" class="href">Markdown</a></li></ul></div><div class="m-summary-block"><div class="m-summary-title">自定义</div><ul class="m-summary-list indent"><li class="item"><a href="theme.html" class="href">主题</a></li><li class="item"><a href="" class="href">JSX</a></li><li class="item"><div class="m-summary-block"><a href="plugins.html" class="href">扩展</a><ul class="m-summary-list indent"><li class="item"><a href="create.html" class="href">创建插件</a></li><li class="item"><a href="hooks.html" class="href">Hooks</a></li><li class="item"><a href="markdown-it.html" class="href">markdown扩展</a></li></ul></div></li></ul></div><div class="m-summary-block"><ul class="m-summary-list"><li class="item"><a href="release.html" class="href">版本历史</a></li></ul></div></div><div class="m-summary-switch" id="js-summary-switch"><svg viewBox="0 0 926.23699 573.74994" version="1.1" x="0px" y="0px" width="15" height="15" class="bottom"><g transform="translate(904.92214,-879.1482)"><path d="m -673.67664,1221.6502 -231.2455,-231.24803 55.6165,-55.627 c 30.5891,-30.59485 56.1806,-55.627 56.8701,-55.627 0.6894,0 79.8637,78.60862 175.9427,174.68583 l 174.6892,174.6858 174.6892,-174.6858 c 96.079,-96.07721 175.253196,-174.68583 175.942696,-174.68583 0.6895,0 26.281,25.03215 56.8701,55.627 l 55.6165,55.627 -231.245496,231.24803 c -127.185,127.1864-231.5279,231.248 -231.873,231.248 -0.3451,0 -104.688,-104.0616 -231.873,-231.248 z" fill="#fff"></path></g></svg><svg viewBox="0 0 926.23699 573.74994" version="1.1" x="0px" y="0px" width="15" height="15" class="top"><g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"><g id="aaa" fill="#fff" fill-rule="nonzero"><path d="M231.2455,342.502 L0,111.25397 L55.6165,55.62697 C86.2056,25.03212 111.7971,-2.99999998e-05 112.4866,-2.99999998e-05 C113.176,-2.99999998e-05 192.3503,78.60859 288.4293,174.6858 L463.1185,349.3716 L637.8077,174.6858 C733.8867,78.60859 813.060896,-2.99999997e-05 813.750396,-2.99999997e-05 C814.439896,-2.99999997e-05 840.031396,25.03212 870.620496,55.62697 L926.236996,111.25397 L694.9915,342.502 C567.8065,469.6884 463.4636,573.75 463.1185,573.75 C462.7734,573.75 358.4305,469.6884 231.2455,342.502 Z" id="Shape" transform="translate(463.118498, 286.874985) scale(1, -1) translate(-463.118498, -286.874985) "></path></g></g></svg></div></div><div class="m-main" id="js-panel"><header class="m-header" id="js-header"><div class="m-header-title js-logo"><a href="../index.html" target="_self"><img class="logo" src="../ydoc/images/dog@1x.png" srcSet="../ydoc/images/dog@2x.png 2x"/><h6 class="name">YDoc</h6></a></div><div><div class="m-search"> <div class="icon">&#xf0fd;</div> <input type="text" class="input js-input" placeholder="搜索文档内容" /> <div class="m-search-result js-search-result"></div> </div></div><nav class="m-header-nav js-nav"><ul class="m-header-items"><li class="item active"><a class="href" href="index.html">文档</a></li><li class="item "><a class="href" href="../plugin/index.html">插件</a></li><li class="item "><span class="href">规范</span><ul class="m-header-subtitle"><li class="item"><a href="../standard/style-guide.html" class="link">设计规范</a></li><li class="item"><a href="../standard/index.html" class="link">文档规范</a></li></ul></li></ul></nav><div id="js-nav-btn" class="m-header-btn ui-font-ydoc"></div></header><div class="m-content" id="js-content"><div id="markdown-body" class="m-content-container markdown-body"><h1>JSX</h1> <p>React&#x53D1;&#x660E;&#x4E86;JSX&#xFF0C; &#x53EF;&#x4EE5;&#x7B80;&#x5355;&#x5730;&#x7406;&#x89E3;&#x5B83;&#x662F;&#x4E00;&#x79CD;&#x5728;JS&#x4E2D;&#x7F16;&#x5199;&#x4E0E;XML&#x7C7B;&#x4F3C;&#x7684;&#x8BED;&#x8A00;&#x3002;&#x901A;&#x8FC7;JSX&#x6765;&#x58F0;&#x660E;&#x7EC4;&#x4EF6;&#x7684;&#x5C5E;&#x6027;&#xFF0C;&#x7C7B;&#x578B;&#x4E0E;&#x7ED3;&#x679C;&#xFF0C;&#x5E76;&#x4E14;&#x901A;&#x8FC7;&#xFF40;{}`&#x63D2;&#x503C;&#xFF0C;&#x5957;&#x5D4C;JS&#x903B;&#x8F91;&#x4E0E;&#x5B50;&#x7EA7;&#x7684;JSX&#x3002;</p> <h3 id="jsx&#x7684;&#x7279;&#x70B9;&#xFF1A;">JSX&#x7684;&#x7279;&#x70B9;&#xFF1A;</h3> <ol> <li>&#x7C7B;XML&#x8BED;&#x6CD5;&#x5BB9;&#x6613;&#x63A5;&#x53D7;&#xFF0C;&#x7ED3;&#x6784;&#x6E05;&#x6670;</li> <li>&#x589E;&#x5F3A;JS&#x8BED;&#x4E49;</li> <li>&#x62BD;&#x8C61;&#x7A0B;&#x5EA6;&#x9AD8;&#xFF0C;&#x5C4F;&#x853D;DOM&#x64CD;&#x4F5C;&#xFF0C;&#x8DE8;&#x5E73;&#x53F0;</li> <li>&#x4EE3;&#x7801;&#x6A21;&#x5757;&#x5316;</li> </ol> <p>&#x6211;&#x4EEC;&#x4ECE;&#x6700;&#x7B80;&#x5355;&#x7684;&#x4E00;&#x4E2A;helloworld&#x5F00;&#x59CB;&#xFF1A;</p> <pre><code class="language-jsx">&lt;h1&gt;Hello, world!<span class="xml"><span class="hljs-tag">&lt;/<span class="hljs-name">h1</span>&gt;</span></span> </code></pre> <p>script&#x6807;&#x7B7E;&#x91CC;&#x9762;&#x7684;&#x5185;&#x5BB9;&#x5B9E;&#x9645;&#x4F1A;&#x88AB;&#x7F16;&#x8BD1;&#x6210;</p> <pre><code class="language-javascript">React.createElement(<span class="hljs-string">&apos;h1&apos;</span>, <span class="hljs-literal">null</span>, <span class="hljs-string">&apos;Hello, world!&apos;</span>); </code></pre> <p>&#x53C8;&#x5982;</p> <pre><code class="language-jsx"><span class="hljs-keyword">var</span> root =( <span class="xml"><span class="hljs-tag">&lt;<span class="hljs-name">ul</span> <span class="hljs-attr">className</span>=<span class="hljs-string">&quot;my-list&quot;</span>&gt;</span> <span class="hljs-tag">&lt;<span class="hljs-name">li</span>&gt;</span>First Text Content<span class="hljs-tag">&lt;/<span class="hljs-name">li</span>&gt;</span> <span class="hljs-tag">&lt;<span class="hljs-name">li</span>&gt;</span>Second Text Content<span class="hljs-tag">&lt;/<span class="hljs-name">li</span>&gt;</span> <span class="hljs-tag">&lt;/<span class="hljs-name">ul</span>&gt;</span></span> ); </code></pre> <p>&#x4F1A;&#x88AB;&#x7F16;&#x8BD1;&#x6210;</p> <pre><code class="language-javascript"><span class="hljs-keyword">var</span> root = React.createElement(<span class="hljs-string">&apos;ul&apos;</span>, { <span class="hljs-attr">className</span>: <span class="hljs-string">&apos;my-list&apos;</span> }, React.createElement(<span class="hljs-string">&apos;li&apos;</span>, <span class="hljs-literal">null</span>, <span class="hljs-string">&apos;First Text Content&apos;</span>), React.createElement(<span class="hljs-string">&apos;li&apos;</span>, <span class="hljs-literal">null</span>, <span class="hljs-string">&apos;Second Text Content&apos;</span>) ); </code></pre> <h3 id="jsx&#x8BED;&#x6CD5;&#x4ECB;&#x7ECD;">JSX&#x8BED;&#x6CD5;&#x4ECB;&#x7ECD;</h3> <p>&#xFF40;{}`&#x63D2;&#x503C;&#x662F;&#x8BA9;JSX&#x533A;&#x522B;&#x666E;&#x901A;HTML&#x7684;&#x4E00;&#x4E2A;&#x91CD;&#x8981;&#x7279;&#x6027;&#xFF0C;&#x53EA;&#x6709;&#x4E09;&#x4E2A;&#x5730;&#x65B9;&#x53EF;&#x4EE5;&#x4F7F;&#x7528;&#x5B83;&#x3002;&#x53EF;&#x4EE5;&#x653E;&#x5C5E;&#x6027;&#x540D;&#x7684;&#x5730;&#x65B9;&#xFF0C;&#x5C5E;&#x6027;&#x7B49;&#x4E8E;&#x53F7;&#x4E4B;&#x540E;&#x7684;&#x4F4D;&#x7F6E;&#x53CA;innerHTML&#x4E4B;&#x95F4;&#x3002;</p> <p>1.<strong>&#x53EF;&#x4EE5;&#x653E;&#x5C5E;&#x6027;&#x540D;&#x7684;&#x5730;&#x65B9;</strong>, &#x8FD9;&#x91CC;&#x53EA;&#x80FD;&#x4F7F;&#x7528;<code>JSXSpreadAttribute</code>(&#x5EF6;&#x4F38;&#x5C5E;&#x6027;)&#xFF0C; &#x6362;&#x8A00;&#x4E4B;&#xFF0C;&#x62EC;&#x53F7;&#x5185;&#x5FC5;&#x987B;&#x5E26;&#x4E09;&#x4E2A;&#x70B9;&#x53F7;</p> <pre><code class="language-jsx"><span class="hljs-keyword">var</span> props = {}; props.foo = x; props.bar = y; <span class="hljs-keyword">var</span> component = <span class="xml"><span class="hljs-tag">&lt;<span class="hljs-name">Component</span> {<span class="hljs-attr">...props</span>} /&gt;</span>; </span></code></pre> <p>2.<strong>&#x5C5E;&#x6027;&#x7B49;&#x4E8E;&#x53F7;&#x4E4B;&#x540E;&#x7684;&#x4F4D;&#x7F6E;</strong>, JSX&#x7684;&#x5C5E;&#x6027;&#x503C;&#x5FC5;&#x987B;&#x7528;&#x5F15;&#x53F7;&#x62EC;&#x8D77;&#x6765;&#xFF0C;&#x5F53;&#x4F60;&#x5C06;&#x5F15;&#x53F7;&#x6539;&#x6210;&#x82B1;&#x62EC;&#x53F7;&#xFF0C;&#x5B83;&#x91CC;&#x9762;&#x5C31;&#x53EF;&#x4EE5;&#x4F7F;&#x7528;JSX&#x53D8;&#x91CF;&#x4E86;&#x3002;&#x76F8;&#x5F53;&#x4E8E;&#x5176;&#x4ED6;&#x6846;&#x67B6;&#x7684;&#x7ED1;&#x5B9A;&#x5C5E;&#x6027;&#x6216;&#x6307;&#x4EE4;&#x3002;&#x9700;&#x8981;&#x8BF4;&#x660E;&#x4E00;&#x4E0B;&#xFF0C;HTML&#x7684;&#x56FA;&#x6709;&#x5C5E;&#x6027;&#x5FC5;&#x987B;&#x4F7F;&#x7528;JS&#x5F62;&#x5F0F;&#xFF0C;&#x4FDD;&#x6301;&#x9A7C;&#x5CF0;&#x98CE;&#x683C;&#xFF0C;&#x5982;class&#x8981;&#x7528;className&#x4EE3;&#x66FF;&#xFF0C;for&#x8981;&#x7528;htmlFor&#x4EE3;&#x66FF;&#xFF0C;tabindex&#x8981;&#x7528;tabIndex&#x4EE3;&#x66FF;&#xFF0C;colspan&#x8981;&#x7528;colSpan&#x4EE3;&#x66FF;&#x3002;</p> <pre><code class="language-jsx">&lt;div tabIndex&#xFF1D;{<span class="hljs-keyword">this</span>.props.a} /&gt; </code></pre> <p>&#x82B1;&#x62EC;&#x53F7;&#x91CC;&#x9762;&#x53EF;&#x4EE5;&#x4F7F;&#x7528;&#x4E09;&#x5143;&#x8868;&#x8FBE;&#x5F0F;</p> <pre><code class="language-jsx"><span class="hljs-keyword">var</span> person = <span class="xml"><span class="hljs-tag">&lt;<span class="hljs-name">Person</span> <span class="hljs-attr">name</span>=<span class="hljs-string">{</span> <span class="hljs-attr">window.isLoggedIn</span> ? <span class="hljs-attr">window.name</span> <span class="hljs-attr">:</span> &apos;&apos; } /&gt;</span>; </span></code></pre> <p>&#x4F1A;&#x7F16;&#x8BD1;&#x6210;</p> <pre><code class="language-javascript"><span class="hljs-keyword">var</span> person = React.createElement( Person, {<span class="hljs-attr">name</span>: <span class="hljs-built_in">window</span>.isLoggedIn ? <span class="hljs-built_in">window</span>.name : <span class="hljs-string">&apos;&apos;</span>} ); </code></pre> <p>3.<strong>innerHTML</strong></p> <pre><code class="language-jsx">&lt;div&gt;xxx{111}yyy&lt;/div&gt; </code></pre> <p>&#x8FD9;&#x4E2A;&#x4F1A;&#x7F16;&#x8BD1;&#x6210;, <code>&#x76F8;&#x90BB;&#x7684;&#x5B57;&#x4EFB;&#x4E32;&#x6216;&#x6570;&#x5B57;&#x4F1A;&#x5408;&#x5E76;&#x6210;&#x4E00;&#x4E2A;&#x5B57;&#x7B26;&#x4E32;</code>&#xFF0C;<code>&#x5E03;&#x5C14;&#xFF0C;null, undefined&#x4F1A;&#x88AB;&#x5FFD;&#x7565;&#x6389;</code>&#x3002;</p> <pre><code class="language-javascript">React.createElement(<span class="hljs-string">&apos;div&apos;</span>, <span class="hljs-literal">null</span>, <span class="hljs-string">&quot;xxx111yyy&quot;</span>) </code></pre> <p>&#x5728;innerHTML&#x91CC;&#x9762;&#xFF0C;&#x6211;&#x4EEC;&#x53EF;&#x4EE5;&#x4F7F;&#x7528;&#x6570;&#x7EC4;&#x6216;&#x6570;&#x7EC4;&#x7684;map&#x65B9;&#x6CD5;&#x751F;&#x6210;&#x4E00;&#x4E2A;&#x65B0;&#x6570;&#x7EC4;&#x7684;&#x65B9;&#x6CD5;&#xFF0C;&#x4E3A;&#x5F53;&#x524D;&#x7236;&#x5143;&#x7D20;&#x6DFB;&#x52A0;&#x4E00;&#x5806;&#x5B50;&#x5143;&#x7D20;&#x3002;</p> <pre><code class="language-jsx"><span class="hljs-keyword">var</span> ul = ( <span class="xml"><span class="hljs-tag">&lt;<span class="hljs-name">ul</span> <span class="hljs-attr">className</span>=<span class="hljs-string">&quot;unstyled&quot;</span>&gt;</span> { this.todoList.todos.map(function (todo) { return ( <span class="hljs-tag">&lt;<span class="hljs-name">li</span>&gt;</span> <span class="hljs-tag">&lt;<span class="hljs-name">input</span> <span class="hljs-attr">type</span>=<span class="hljs-string">&quot;checkbox&quot;</span> <span class="hljs-attr">checked</span>=<span class="hljs-string">{todo.done}</span>&gt;</span> <span class="hljs-tag">&lt;<span class="hljs-name">span</span> <span class="hljs-attr">className</span>=<span class="hljs-string">{</span>&apos;<span class="hljs-attr">done-</span>&apos; + <span class="hljs-attr">todo.done</span>}&gt;</span>{todo.text}<span class="hljs-tag">&lt;/<span class="hljs-name">span</span>&gt;</span> <span class="hljs-tag">&lt;/<span class="hljs-name">li</span>&gt;</span> ); }) } <span class="hljs-tag">&lt;/<span class="hljs-name">ul</span>&gt;</span> ); </span></code></pre> <h3 id="jsx&#x4E2D;&#x4F7F;&#x7528;&#x6837;&#x5F0F;">JSX&#x4E2D;&#x4F7F;&#x7528;&#x6837;&#x5F0F;</h3> <p>&#x5728;JSX&#x4E2D;&#x4F7F;&#x7528;&#x6837;&#x5F0F;&#x548C;&#x771F;&#x5B9E;&#x7684;&#x6837;&#x5F0F;&#x4E5F;&#x5F88;&#x7C7B;&#x4F3C;&#xFF0C;&#x901A;&#x8FC7;style&#x5C5E;&#x6027;&#x6765;&#x5B9A;&#x4E49;&#xFF0C;&#x4F46;&#x548C;&#x771F;&#x5B9E;DOM&#x4E0D;&#x540C;&#x7684;&#x662F;&#xFF0C;`&#x5C5E;&#x6027;&#x503C;&#x4E0D;&#x80FD;&#x662F;&#x5B57;&#x7B26;&#x4E32;&#x800C;&#x5FC5;&#x987B;&#x4E3A;&#x5BF9;&#x8C61;&#xFF40;&#x3002;</p> <pre><code class="language-jsx">&lt;div style={{color: &apos;#ff0000&apos;, fontSize: &apos;14px&apos;}}&gt;Hello World.&lt;/div&gt; </code></pre> <p>&#x6216;&#x8005;</p> <pre><code class="language-jsx"><span class="hljs-keyword">var</span> style = { <span class="hljs-attr">color</span>: <span class="hljs-string">&apos;#ff0000&apos;</span>, <span class="hljs-attr">fontSize</span>: <span class="hljs-string">&apos;14px&apos;</span> }; <span class="hljs-keyword">var</span> node = <span class="xml"><span class="hljs-tag">&lt;<span class="hljs-name">div</span> <span class="hljs-attr">style</span>=<span class="hljs-string">{style}</span>&gt;</span>HelloWorld.<span class="hljs-tag">&lt;/<span class="hljs-name">div</span>&gt;</span></span>; </code></pre> <p>&#x8981;&#x660E;&#x786E;&#x8BB0;&#x4F4F;,{}&#x91CC;&#x9762;&#x662F;JS&#x4EE3;&#x7801;,&#x8FD9;&#x91CC;&#x4F20;&#x8FDB;&#x53BB;&#x7684;&#x662F;&#x6807;&#x51C6;&#x7684;JS&#x5BF9;&#x8C61;&#x3002;&#x5728;JSX&#x4E2D;&#x53EF;&#x4EE5;&#x4F7F;&#x7528;&#x6240;&#x6709;&#x7684;&#x6837;&#x5F0F;&#xFF0C;&#x57FA;&#x672C;&#x4E0A;&#x5C5E;&#x6027;&#x540D;&#x7684;&#x8F6C;&#x6362;&#x89C4;&#x8303;&#x5C31;&#x662F;&#x5C06;&#x5176;&#x5199;&#x6210;&#x9A7C;&#x5CF0;&#x5199;&#x6CD5;&#xFF0C;&#x4F8B;&#x5982;&#x201C;background-color&#x201D;&#x53D8;&#x4E3A;&#x201C;backgroundColor&#x201D;, &#x201C;font-size&#x201D;&#x53D8;&#x4E3A;&#x201C;fontSize&#x201D;&#xFF0C;&#x8FD9;&#x548C;&#x6807;&#x51C6;&#x7684;JavaScript&#x64CD;&#x4F5C;DOM&#x6837;&#x5F0F;&#x7684;API&#x662F;&#x4E00;&#x81F4;&#x7684;&#x3002;</p> <h3 id="html&#x8F6C;&#x4E49;">HTML&#x8F6C;&#x4E49;</h3> <p>&#x5728;&#x7EC4;&#x4EF6;&#x5185;&#x90E8;&#x6DFB;&#x52A0;html&#x4EE3;&#x7801;,&#x5E76;&#x5C06;html&#x4EE3;&#x7801;&#x6E32;&#x67D3;&#x5230;&#x9875;&#x9762;&#x4E0A;&#x3002;React&#x9ED8;&#x8BA4;&#x4F1A;&#x8FDB;&#x884C;HTML&#x7684;&#x8F6C;&#x4E49;&#xFF0C;&#x907F;&#x514D;XSS&#x653B;&#x51FB;&#xFF0C; &#x5982;&#x679C;&#x8981;&#x4E0D;&#x8F6C;&#x4E49;&#xFF0C;&#x53EF;&#x4EE5;&#x4F7F;&#x7528;dangerouslySetInnerHTML&#x5C5E;&#x6027;&#x3002;dangerouslySetInnerHTML&#x8981;&#x6C42;&#x5BF9;&#x5E94;&#x4E00;&#x4E2A;&#x5BF9;&#x8C61;&#xFF0C;&#x91CC;&#x9762;&#x6709;&#x4E00;&#x4E2A;&#x53EB;__html&#x7684;&#x5B57;&#x7B26;&#x4E32;&#x3002;React&#x6545;&#x610F;&#x641E;&#x5F97;&#x8FD9;&#x4E48;&#x96BE;&#x5199;&#xFF0C;&#x76EE;&#x7684;&#x8BA9;&#x5927;&#x5BB6;&#x5C11;&#x70B9;&#x7528;&#x5B83;&#x3002;</p> <pre><code class="language-jsx">&lt;div dangerouslySetInnerHTML={{<span class="hljs-attr">__html</span>: <span class="hljs-string">&apos;&lt;strong&gt;content&lt;/strong&gt;&apos;</span>}}&gt;<span class="xml"><span class="hljs-tag">&lt;/<span class="hljs-name">div</span>&gt;</span></span> </code></pre> <p>&#x6CE8;&#x610F;&#xFF1A;JSX&#x91CC;&#x9762;br&#xFF0C;input, hr&#x7B49;&#x6807;&#x7B7E;&#x5FC5;&#x987B;&#x81EA;&#x95ED;&#x5408;&#xFF0C;&#x5982;<code>&lt;br&gt;</code>&#x5FC5;&#x987B;&#x5199;&#x6210;<code>&lt;br /&gt;</code> &#x5E76;&#x4E14;&#x4F7F;&#x7528;&#x4E86;dangerouslySetInnerHTML</p> <h3 id="&#x5C5E;&#x6027;&#x7684;&#x5B9A;&#x4E49;">&#x5C5E;&#x6027;&#x7684;&#x5B9A;&#x4E49;</h3> <p>JSX&#x662F;&#x4E25;&#x683C;&#x533A;&#x5206;&#x56FA;&#x6709;&#x5C5E;&#x6027;&#x4E0E;&#x81EA;&#x5B9A;&#x4E49;&#x5C5E;&#x6027;&#xFF0C; &#x56FA;&#x6709;&#x5C5E;&#x6027;&#x662F;&#x6307;&#x5143;&#x7D20;&#x539F;&#x5F62;&#x94FE;&#x4E0A;&#x5C31;&#x5DF2;&#x5B58;&#x5728;&#x7684;&#x5C5E;&#x6027;&#xFF0C;&#x6BD4;&#x5982;id, title, className, htmlFor, style&#xFF0C;colSpan&#x3002;&#x8FD9;&#x4E9B;&#x5C5E;&#x6027;&#x662F;&#x4E25;&#x683C;&#x533A;&#x5206;&#x5927;&#x5C0F;&#x5199;&#x3002;&#x5E76;&#x4E14;&#x5BF9;&#x5C5E;&#x6027;&#x503C;&#x4E5F;&#x6709;&#x8981;&#x6C42;&#x3002;</p> <p>&#x56FA;&#x6709;&#x5C5E;&#x6027;&#x6839;&#x636E;&#x5176;&#x503C;&#x7684;&#x7C7B;&#x578B;&#xFF0C;&#x53EF;&#x4EE5;&#x5206;&#x4E3A;&#x5E03;&#x5C14;&#x5C5E;&#x6027;&#x4E0E;&#x5B57;&#x7B26;&#x4E32;&#x5C5E;&#x6027;&#x3002;&#x5E03;&#x5C14;&#x5C5E;&#x6027;&#x4E00;&#x822C;&#x51FA;&#x73B0;&#x5728;&#x8868;&#x5355;&#x5143;&#x7D20;&#x4E0E;A&#xFF0C;script&#x7B49;&#x6807;&#x7B7E;&#x4E0A;&#xFF0C;&#x5982;disabled, readOnly, selected, checked&#x7B49;&#x7B49;&#x3002;&#x5E03;&#x5C14;&#x5C5E;&#x6027;&#x65F6;&#xFF0C;&#x5927;&#x5BB6;&#x5728;&#x4F7F;&#x7528;&#x65F6;&#xFF0C;&#x503C;&#x5FC5;&#x987B;&#x662F;&#x5E03;&#x5C14;</p> <pre><code class="language-jsx">&lt;input type=<span class="hljs-string">&apos;radio&apos;</span> checked={<span class="hljs-literal">true</span>} /&gt; </code></pre> <p>&#x5B57;&#x7B26;&#x4E32;&#x5C5E;&#x6027;&#x4E5F;&#x6BD4;&#x8F83;&#x5E38;&#x89C1;&#xFF1A;</p> <pre><code>value,id,title,alt,htmlFor,longDesc,className </code></pre> <p>&#x8FD8;&#x6709;&#x4E00;&#x4E9B;&#x4E0D;&#x89C4;&#x5219;&#x7684;&#x5C5E;&#x6027;(&#x4E0D;&#x9700;&#x8981;&#x523B;&#x610F;&#x8BB0;&#xFF0C;&#x53EA;&#x8981;&#x8BB0;&#x4F4F;&#x4E0A;&#x9762;&#x4E24;&#x79CD;&#x5C31;&#x662F;)</p> <pre><code>accessKey,bgColor,cellPadding,cellSpacing,codeBase,codeType,colSpan,dateTime,defaultValue,contentEditable,frameBorder,maxLength,marginWidth,marginHeight,rowSpan,tabIndex,useMap,vSpace,valueType,vAlign </code></pre> <p>&#x800C;&#x81EA;&#x5B9A;&#x4E49;&#x5C5E;&#x6027;&#xFF0C;&#x5219;&#x662F;&#x7528;&#x6237;&#x968F;&#x4FBF;&#x8BBE;&#x7F6E;&#x7684;&#x3002;</p> <h3 id="&#x5982;&#x4F55;&#x81EA;&#x5B9A;&#x4E49;&#x7EC4;&#x4EF6;">&#x5982;&#x4F55;&#x81EA;&#x5B9A;&#x4E49;&#x7EC4;&#x4EF6;</h3> <p>&#x5728; YDoc &#x65B0;&#x5EFA;&#x7EC4;&#x4EF6;&#x662F;&#x975E;&#x5E38;&#x7B80;&#x5355;&#x7684;&#xFF0C;&#x7B2C;&#x4E00;&#x6B65;&#x5728; docs &#x76EE;&#x5F55;&#x4E0B;&#x65B0;&#x5EFA; _components &#x76EE;&#x5F55; &#x5047;&#x8BBE;&#x6211;&#x4EEC;&#x8981;&#x65B0;&#x5EFA;&#x4E00;&#x4E2A; Demo &#x7EC4;&#x4EF6;&#xFF0C;&#x53EF;&#x4EE5;&#x65B0;&#x5EFA; Demo.jsx &#x6587;&#x4EF6;&#xFF08;&#x786E;&#x4FDD;&#x6587;&#x4EF6;&#x540D;&#x7B2C;&#x4E00;&#x4E2A;&#x5B57;&#x6BCD;&#x5927;&#x5199;&#xFF09;&#xFF0C;&#x6587;&#x4EF6;&#x5185;&#x5BB9;&#x5982;&#x4E0B;&#xFF1A;</p> <p>&#x4E00;&#x822C;&#x6765;&#x8BF4;&#xFF0C;&#x6211;&#x4EEC;&#x53EF;&#x4EE5;&#x901A;&#x8FC7;&#x6807;&#x7B7E;&#x540D;&#x7684;&#x7B2C;&#x4E00;&#x4E2A;&#x5B57;&#x6BCD;&#x662F;&#x5927;&#x5199;&#x8FD8;&#x662F;&#x5C0F;&#x5199;&#x6765;&#x8BC6;&#x522B;&#x7EC4;&#x4EF6;&#x4E0E;&#x666E;&#x901A;&#x6807;&#x7B7E;&#x3002;</p> <pre><code class="language-jsx"> &lt;p&gt; Hello, &lt;input type=&quot;text&quot; placeholder=&quot;Your name here&quot; /&gt;! It is {props.date} &lt;/p&gt; </code></pre> <h3 id="&#x5982;&#x4F55;&#x5F15;&#x7528;&#x81EA;&#x5B9A;&#x4E49;&#x7EC4;&#x4EF6;">&#x5982;&#x4F55;&#x5F15;&#x7528;&#x81EA;&#x5B9A;&#x4E49;&#x7EC4;&#x4EF6;</h3> <p>&#x5047;&#x8BBE;&#x6709;&#x4E00;&#x4E2A; Demo2 &#x7EC4;&#x4EF6;&#xFF0C;&#x60F3;&#x5F15;&#x7528; Demo &#x7EC4;&#x4EF6;&#xFF0C;&#x53EF;&#x5728; Demo2.jsx &#x6587;&#x4EF6;&#x5199;&#x5165;&#x4EE5;&#x4E0B;&#x793A;&#x4F8B;&#x4EE3;&#x7801;&#x5F15;&#x5165;&#xFF1A;</p> <pre><code class="language-jsx">&lt;Demo2 date=<span class="hljs-string">&quot;2018&quot;</span>&gt; </code></pre> <h3 id="&#x81EA;&#x5B9A;&#x4E49;&#x9875;&#x9762;&#x53D8;&#x91CF;">&#x81EA;&#x5B9A;&#x4E49;&#x9875;&#x9762;&#x53D8;&#x91CF;</h3> <p>&#x5982;&#x679C;&#x4F7F;&#x7528; js &#x81EA;&#x5B9A;&#x4E49;&#x9875;&#x9762;&#x53D8;&#x91CF;&#xFF0C;&#x5C06;&#x4F1A;&#x975E;&#x5E38;&#x96BE;&#x7528;&#x548C;&#x4E0D;&#x4F18;&#x96C5;&#xFF0C;YDoc &#x53C2;&#x8003;&#x4E86;&#x5F00;&#x6E90;&#x5DE5;&#x5177; <a href="https://github.com/jonschlinkert/gray-matter">gray-matter</a> &#x5728;&#x9875;&#x9762;&#x6CE8;&#x5165; YAML &#x65B9;&#x6848;&#x3002;</p> <pre><code class="language-html">--- title: Hello slug: home --- <span class="hljs-tag">&lt;<span class="hljs-name">h1</span> &gt;</span>{title}, {slug}<span class="hljs-tag">&lt;/<span class="hljs-name">h1</span>&gt;</span> </code></pre> <h3 id="&#x7CFB;&#x7EDF;&#x5185;&#x90E8;&#x7EC4;&#x4EF6;">&#x7CFB;&#x7EDF;&#x5185;&#x90E8;&#x7EC4;&#x4EF6;</h3> <p>&#x7CFB;&#x7EDF;&#x5185;&#x7F6E;&#x4E86;&#x5982;&#x4E0B;&#x7684;&#x7EC4;&#x4EF6;&#xFF0C;&#x8BF7;&#x5C3D;&#x91CF;&#x907F;&#x514D;&#x8DDF;&#x7CFB;&#x7EDF;&#x7EC4;&#x4EF6;&#x91CD;&#x540D;&#xFF0C;&#x56E0;&#x4E3A;&#x4E00;&#x65E6;&#x91CD;&#x540D;&#xFF0C;&#x5C06;&#x4F1A;&#x8986;&#x76D6;&#x7CFB;&#x7EDF;&#x7684;&#x539F;&#x6709;&#x7EC4;&#x4EF6;&#x3002;</p> <ul> <li>Content</li> <li>Footer</li> <li>Head</li> <li>Header</li> <li>Homepage</li> <li>Hook</li> <li>Layout</li> <li>Logo</li> <li>Script</li> <li>Summary</li> </ul> </div><div class="m-content-container m-paging"><div class="m-paging-prev m-paging-item"><a href="theme.html" class="href"><span class="ui-font-ydoc"></span>主题</a></div><div class="m-paging-next m-paging-item"><a href="plugins.html" class="href">扩展<span class="ui-font-ydoc"></span></a></div></div></div></div></div><script src="../ydoc/scripts/plugins/dollar.min.js"></script><script src="../ydoc/scripts/plugins/responsive-nav.min.js"></script><script src="../ydoc/scripts/plugins/slideout.min.js"></script><script src="../ydoc/scripts/app.js"></script><script src="../ydoc/ydoc-plugin-search/core.js"></script><script src="../ydoc/ydoc-plugin-search/search.js"></script><script src="../search_json.js"></script></body></html>