阅读 50

筑基-函数组件与类组件

概念就不多介绍了,直接来正题吧。 接上创建项目

第一步 App.js

cp App.js App.js.bak 把App.js 备份一下 cp 为cmd 命令,linux 文件复制时很好用 vi App.js 编辑器查看App.js代码  vi 为vim 语法 查看 新建或编辑某个文件 复制代码

pwd : react/first-app/src/App.js   pwd cmd 语法查看文件路径  function App() {   return (     <div className="App">        1、清空文件内容        2、增加一个<div>这是改后的</div>        3、浏览器查看证明ok        4、本步骤ok     </div>   ); } export default App; 复制代码

第二步 创建对应文件夹和文件

mkdir -p src/views/home/ mkdir 创建文件夹命令 加-p 可以多层创建,可通过命令行操作,也可以编辑器操作 文中提到的命令,在win git bash mac iterm2 linux 中都可以正常使用 win 默认cmd 或vscode 中好多命令是不支持的。 vi src/views/home/index.jsx 创建一个文件  jsx 语法在后章节中介绍 复制代码

第三步  编写第一个类组件

pwd: src/views/home/index.jsx import React, { Component } from 'react'; /** //es6 导入模块 因为我们要编写一个类组件,所以需要使用react包 React 和Component 什么关系  这个其实就是 export 和export default 的关系 React.Component =======  Component  所以我们在创建组件,首先要继承react component  **/ //class Home extends React.Component { //都可以,我们直接使用Component class Home extends Component {     //每个类组件必需有个函数就是render(){}     render(){        // 渲染页面正常是render返回值         return(             <div>这是网站首页</div>         )     } } export default Home; 写到,基本的一个类组件就ok 了, 来看上面的代码,如果是Test页面或About页面是不是都需要单独定义一个 类名 为了考虑程序代码复用以及潜意识开发。 我们可以统一使用View 看代码,有default 所以在外面使用和组件内不需要考虑对应关系 这样以后凡事看到 view 就默认就知道是页面了 class View extends Component {     //每个类组件必需有个函数就是render(){}     render(){        // 渲染页面正常是render返回值         return(             <div>这是网站首页</div>         )     } } export default View; 复制代码

第四步  在浏览器里查看

修改App.js 1、导入home页面 import Home from './views/home'; 并且在app.js中使用这个Home 导入组件的名称要大写 <div className="App">    <Home/> </div> 从开发上讲要改一个大小写 所以我们把文件夹也大写 import Home from './views/Home'; function App() {   return (     <div className="App">         <Home/>     </div>   ); } export default App; 这样在src/views/文件夹下创建的项目就不小写了 以后就统一大写了 src/views/Home/ 复制代码

第五步  编写一个函数组件

函数组件其实App.js就相当于一个函数组件,那我们来写两个函数组件 function View(){   return(         <div>             这是一个函数组件         </div>     ) } export default View; 对应es6写法 const View = () =>{     return(         <div>             这是一个函数es6写法组件         </div>     ) } export default View; 这样简单的函数组件和类组件就ok了。 前期课程主要是类组件,函数组件会在具体hook讲了后那就是函数组件会多写一些。 复制代码

第六步  写一个共公组件及目录强化

react/first-app/src/components/Header/index.jsx 目录为 src/     styles         index.scss         base.scss         test.scss         img/             a.png             b.png     views/         Home/index.jsx         Test/index.jsx     components/         Header/index.jsx         Footer/index.jsx 内容为类组件 import React, { Component }  from 'react'; class Com extends Component {      render(){          return(             <div>                  这是一个header组件              </div>          )      }  } /* // function Com(){ //     return( //         <div> //             这是一个header组件 //         </div> //     ) // } const Com = () =>{     return(         <div>             这是一个header组件         </div>     ) } */ export default Com; 这里不用View了。用Com组件的简写 这样当我们看到View时就会发现这是页面 当我们看到是Com时默认就知道这是共公组件 潜意识开发 复制代码

第七步  本章完整代码

react/first-app/src/App.js import Home from './views/Home'; import Test from './views/Test'; function App() {   return (     <div className="App">         <Home/>         <Test/>     </div>   ); } export default App; 复制代码

react/first-app/src/views/Home/index.jsx import React, { Component } from 'react'; // export default // export   区别 // React.Component // Component // 一个类组件 // 1、导入react 对就包 // 2、编写一个class //     render //         return() // 3、export default Home; // Home/index.jsx import Header from '../../components/Header'; // 按正常相对路径引入 就可以了 class View extends Component{     render(){         return(             <div>                 <Header/>                 第一个home组件             </div>         )     } } export default View; 复制代码

react/first-app/src/views/Test/index.jsx import React, { Component } from 'react'; const View = () =>{     return(         <div>             这是一个Test组件         </div>     ) } export default View; 复制代码

react/first-app/src/components/Header/index.jsx // function Com(){ //     return( //         <div> //             这是一个header组件 //         </div> //     ) // } const Com = () =>{     return(         <div>             这是一个header组件         </div>     ) } // import React, { Component }  from 'react'; // // class Com extends Component { //     render(){ //         return( //             <div> //                 这是一个header组件 //             </div> //         ) //     } // } export default Com;


作者:金禹铭
链接:https://juejin.cn/post/7023663758341832712

文章分类
后端
文章标签
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐