愚伕 發表於 2019-12-1 00:09:00

React安装及基本使用

<p>从本栏起,我们开始系统的学习 <em><font color="#d63200">React</font></em>,本篇文章主要讲述 正式学习知识点之前需要做一些准备工作。<br>
既然是学习,那么还是要看官方的文件,这边提供了预习资源:</p>
<h3 id="预习资源">预习资源</h3>
<ol>
<li>React</li>
<li>create-react-app</li>
</ol>
<p>同时我的开发环境是:</p>
<h3 id="开发环境">开发环境</h3>
<ol>
<li>vscode下载</li>
<li> node.js下载</li>
</ol>
<h3 id="起步">起步</h3>
<p>可以直接运行下面的 命令行,也可以使用 <em><font color="#d63200">npx</font></em> :</p>
<pre><code class="language-Shell"># 安装官方脚手架 并 初始化
npm install -g create-react-app
create-react-app react01
# 或者可以直接运行
npx create-react-app react01
</code></pre>
<p>运行完成之后,我们可以看到文件结构如下图:</p>
<p><img src="https://muzikou.github.io/img/react/tree.png" alt="index.html" loading="lazy"></p>
<p>下面我们来分析一下文件结构,此时我们 打开 <em><font color="#d63200">src -&gt; index.js</font></em> ,可以看到这句代码:</p>
<pre><code class="language-js">ReactDOM.render(&lt;App /&gt;, document.getElementById('root'));
</code></pre>
<p>这个就是一个项目最重要的两个组成部分,<em><font color="#d63200">React</font></em> 和 <em><font color="#d63200">reactDom</font></em> ,其中 <em><font color="#d63200">react</font></em> 负责逻辑控制,最终渲染的内容是由 <em><font color="#d63200">reactDom</font></em> 控制<br>
此时 <em><font color="#d63200">reactDom</font></em> 渲染的是 一个 纯粹的组件 <em><font color="#d63200">App</font></em> ,那么我们打开 <em><font color="#d63200">app.js</font></em> 并找到下面这段代码:</p>
<pre><code class="language-js">function App() {
return (
    &lt;div className="App"&gt;
      &lt;header className="App-header"&gt;
      &lt;img src={logo} className="App-logo" alt="logo" /&gt;
      &lt;p&gt;
          Edit &lt;code&gt;src/App.js&lt;/code&gt; and save to reload.
      &lt;/p&gt;
      &lt;a
          className="App-link"
          href="https://reactjs.org"
          target="_blank"
          rel="noopener noreferrer"
      &gt;
          Learn React
      &lt;/a&gt;
      &lt;/header&gt;
    &lt;/div&gt;
);
}
</code></pre>
<p>此时的你是否会疑惑,这个标签语法既不是字符串也不是 <em><font color="#d63200">HTML</font></em>,那么是什么呢?请继续往下看<br>
上面我们初始一种新的语法,其实它被称为 <em><font color="#d63200">JSX</font></em> ,是一个 <em><font color="#d63200">JavaScript</font></em> 的语法扩展,实际核心的逻辑完全是 <em><font color="#d63200">JavaScript</font></em> 实现的。</p>
<h2 id="jsx">JSX</h2>
<ul>
<li><strong><font>表达式</font></strong></li>
</ul>
<p>我们打开此时项目的起始点是 <em><font color="#d63200">app.js</font></em> ,删除 <em><font color="#d63200">header</font></em> 标签及其内容,并更改以下内容,</p>
<pre><code class="language-js">function App() {
const name = 'name is muzi'
return (
    &lt;div&gt;
      {/* 表达式 */}
      &lt;h1&gt; { name } &lt;/h1&gt;
    &lt;/div&gt;
);
}
</code></pre>
<p>然后在终端运行如下指令,启动项目可以看到我们定义的 <em><font color="#d63200">name</font></em> 变量的值:</p>
<pre><code class="language-shell">npm run start
</code></pre>
<p><em><font color="#d63200">注意: </font></em> 在 <em><font color="#d63200">{ }</font></em> 中只要是合法的 <em><font color="#d63200">js</font></em> 表达式即可,例如 加减乘除、函数表达式等</p>
<p>下面我们列举一个函数表达式的使用,新定义一个 <em><font color="#d63200">formatName</font></em> 函数 和 <em><font color="#d63200">user</font></em> 变量并调用,修改代码如下:</p>
<pre><code class="language-js">function formatName(user){
return user.firstName + ' ' + user.lastName
}
function App() {
const user = {
    firstName: 'mu',
    lastName: 'zi'
}
return (
    &lt;div&gt;
      {/* 此处做一个函数表达式的使用 */}
      &lt;h1&gt;{formatName(user)}&lt;/h1&gt;
    &lt;/div&gt;
);
}
</code></pre>
<p><em><font color="#d63200">注意: </font></em>中合法是表达式不是条件语句,不能在 <em><font color="#d63200">{ }</font></em> 中写 条件语句或者 <em><font color="#d63200">for</font></em> 循环</p>
<ul>
<li><strong><font>属性值</font></strong></li>
</ul>
<p>如以 <em><font color="#d63200">img</font></em> 标签为例,我们设置其 <em><font color="#d63200">src</font></em> 属性 和 <em><font color="#d63200">style</font></em> 样式,新增代码如下:</p>
<pre><code class="language-js">function App() {
const styles = { width:'100px' }
return (
    &lt;div&gt;
      {/*   属性 */}
      &lt;img src={ logo } style={ styles }/&gt;
    &lt;/div&gt;
);
}
</code></pre>
<p>此时 style 样式为一个对象,修改完成之后 可以去浏览器看结果。</p>
<ul>
<li><strong><font>jsx 也是表达式</font></strong></li>
</ul>
<p>此时我们定义一个 <em><font color="#d63200">jsx</font></em> 的变量,修改代码如下:</p>
<pre><code class="language-js">function App() {
const jsx = &lt;p&gt;hello,jsx 也是表达式&lt;/p&gt;
return (
    &lt;div&gt;
      {/* jsx 也是表达式 */}
      { jsx }
    &lt;/div&gt;
);
}
</code></pre>
<p>上面这些就是基本语法,下一篇我们来介绍组件的创建方式和传值 React中组件的创建方式和传值</p><br><br>
来源:https://www.cnblogs.com/-muzi/p/11964716.html
頁: [1]
查看完整版本: React安装及基本使用