创建组件

在上一篇的博客中我们介绍了react中字符串的处理方式和字符串数组的处理方式,如需回顾:

https://blog.csdn.net/datouniao1/article/details/119477932

在这一篇的博客中我们继续学习,在React项目中如何创建组件,以及向组件传递参数

创建组件两种方式,我们先介绍第一种形式,第一种形式和我们在js 中用到的函数很是接近

我们先看最为简单的

function Hello(){return null;
}const myh1=<div>我是一个div<Hello></Hello></div>
ReactDOM.render(myh1,document.getElementById("app"));

我们来分析这一串代码:

function Hello(){   -----function 声明,并且组件的名称Hello 首字母是大写的

return null;   ------返回为null 组件是必须有返回值的

}

如何使用组件:

const myh1=<div>
               我是一个div
               <Hello></Hello>   ---组件的使用
 </div>

那么上面这一串代码有怎么样的效果:

可以看到的是什么也没有返回,因为我们返回的是null ,也就是说当返回null 的时候 页面上是什么都没有的

此处肯定大家有疑问,那么如果我的返回不是null 会有怎么样的效果

比如:

function Hello(){return <h1>我是Hello 组件</h1>;
}

这个地方组件是有返回的

但是这个组件怎么没有参数啊,能不能定义一个带有参数的组件啊

function Hello(props){console.log(props);return <h1>我是Hello 组件</h1>;
}
const people={name:"wdg",age:18,job:"chengxuyuan"
}
const myh1=<div>我是一个div<Hello name={people.name} age={people.age}></Hello></div>ReactDOM.render(myh1,document.getElementById("app"));

带有参数的组件就是这样的定义

function Hello(props){     ------props 标识的是组件的形参  需要注意的是这个地方的参数是只读的
    console.log(props);
    return <h1>我是Hello 组件</h1>;
}

调用的时候如何传递参数:

(1) <Hello name={people.name} age={people.age}></Hello>

我们看打印出来的props:

{name: "wdg", age: 18}

但是(1)中传递参数我们看到是非常麻烦的,每一个属性都需要写,其实在ES6中有一个展开的运算符我们也可以写成这样

<Hello {...people}></Hello>

结果控制台的输出如下:{name: "wdg", age: 18, job: "chengxuyuan"}

创建组件文件 .jsx

在上面我们在index.js文件中创建了一个组件,如果我们所有创建的组件都在这个文件中,那么这个文件会慢慢的变大,所以说我们需要向办法把组件存入到其他的文件中,该如何设置,首先我们创建一个文件夹,文件夹的名称为 compents

在这个文件夹中我们创建一个文件:Hello.jsx 内容如下:

import React from 'react'
import ReactDOM from 'react-dom'function Hello(props){return <div>你好,我的名字是:{props.name},我今年:{props.age} ,我的地址是:{props.address}</div>
}export default Hello

解析: 我们在组件的文件中需要导入 React和ReactDOM

然后定义组件,最后导出组件

那么我们在index.js 文件中要使用Hello 组件,就需要将Hello 组件导入到index.js 文件中

我们可以看到的是导出的时候:'./components/Hello'  没有加上.jsx 如何实现,原因是因为我们在

wenpack.config.js 中做了如下的配置:

resolve 我们知道是解析的意思,表示我们在导入的时候,会将导入的文件的位置默认加上这几个后缀,首先是会去找有没有Hello.js 文件,然后找有没有Hello.jsx,最后找有没有Hello.json 按照我们配置的顺序去查找

修改了配置文件之后重启项目

上面讲述了我们在编写react项目的时候,如何创建一个组件,和如何来编写jsx 文件

希望对你有所帮助

React 项目--创建组件(7)相关推荐

  1. React项目创建以及结构

    react是什么 React是一个声明式,高效且灵活的用于构建用户界面的JavaScript组件库,使用react可以将一些简短,独立的代码片段合成复杂的UI界面,这些代码片段被称作组件 react介 ...

  2. React项目创建报错解决方案npm ERR! code 1 npm ERR! path E:\Node1\untitled5\node_modules\fibers npm ERR! command

    在用webstorm创建React项目时发现一个巨离谱的错误 (node:15528) ExperimentalWarning: The fs.promises API is experimental ...

  3. react项目创建步骤

    今天创建第一个react项目,也踩了一些坑.从npm安装开始 记录一下. 1.下载 nodejs并安装 2.nodejs 目录下创建node_global 和 node_cache文件夹 3. 配置目 ...

  4. vue项目创建组件的步骤展示

    在home界面文件中提取出相关的子组件如typeNav子组件 如果这个typeNav是全局多个界面用到了 就放入components文件夹中 当作全局公共组件 如果只有home界面用到了 就放在pag ...

  5. React基础篇(四)之创建组件方式分析

    本小将讲述在 React 中, 1.通过函数 function 方式创建组件并分离成单独的组件实现,然后传递参数给组件使用 2.通过 关键字 class 来创建组件,并分离成单独的组件实现,然后传递参 ...

  6. 如何创建React项目

    前言 构建React项目的几种方式: create-react-app 脚手架快速搭建 react 项目(推荐) yeoman 脚手架搭建 react 项目 webpack 一步一步构建 react ...

  7. 如何创建一个React项目(超简单)

    1.安装Node.js(官网Node.js下载) 2.运行node -v和npm -v两条命令(检验是否下载成功Node.js) 3.npm install -g cnpm --registry=ht ...

  8. 如何创建一个 react 项目

    目录 前言 一.create-react-app 脚手架快速搭建 react 项目 1.安装 create-react-app 2.检测 create-react-app 是否安装成功 3.创建 re ...

  9. react项目的搭建与启动

    react项目的搭建与启动 准备工作(环境的搭建) react项目创建与启动 常用插件安装 Sass/Scss安装 准备工作(环境的搭建) (已经准备好的这一步可以跳过) 1.安装Node.js(安装 ...

最新文章

  1. python常用魔法函数
  2. jQuery的选择器(一)
  3. 5大厂2020年应届生AI岗薪资一览,作为一个AI老鸟你的薪资有他们高吗?
  4. 导出数据库API接口文档
  5. Xamarin XAML语言教程构建ControlTemplate控件模板 (二)
  6. 【错误记录】Android Studio 的 Flutter 代码界面没有 Logcat 面板
  7. QuickContact分析及其弹出窗口实现
  8. 当身为老师的爸爸上课时......​
  9. 服务器安装mysql要密码_在阿里云服务器上安装mysql及重置密码
  10. 这份免费AI论文太强了,我肝了!
  11. 很感人的爱情故事——世界上最遥远的距离
  12. android dialogfragment 简单,使用DialogFragment
  13. 如何在Linux中使用netstat命令
  14. 缓存与IO(很经典)
  15. 游戏ai人工智能_AI与游戏,第1部分:游戏如何推动了两门AI研究流派
  16. 联想小新i1000拆机图解_小白晒小白:Lenovo 联想 小新 I1000 笔记本电脑
  17. mysql全文检索 中文_mysql全文索引不支持中文的解决方案
  18. UnicodeTOGB,能够将Unicode串转换成GB码
  19. Matlab 可视化世界地图,matlab绘制世界地图的脚本
  20. js数组操作(push,pop,shift,unshift,slice,splice,concat,sort)

热门文章

  1. 将数据库表中数据转为XML
  2. 编程之美:无差错二分查找
  3. strtok()思考
  4. 简单综合部署nagios环境
  5. 程序员天花板:产后半年加薪升职,这位程序员妈妈绝了!
  6. 从刚入职阿里的学弟那里薅来的面试题,速速领取~~~
  7. 除了腾讯阿里,中国最牛的风投机构,其实是合肥市政府!
  8. 程序员学霸!top2大学毕业!不到30岁第一次升P9失败!挫折感极强,怀疑人生?网友:没升P7的我,不要面子的吗??...
  9. 面试官:说说你知道的几种负载均衡分类
  10. 一步一图,带你重头梳理微服务架构!