网站首页 > 基础教程 正文
最近两天抽了点时间用于学习React.js框架
下面简单介绍一下React.js的项目搭建及开发
React.js是声明式编写UI并且组件化渲染页面,使用JavaScript编写
React开发的页面与HTML页面基本一样
简单的搭建方式是在HTML页面中直接引入React.js
<script src="https://cdn.staticfile.org/react/16.4.0/umd/react.development.js"></script>
<script src="https://cdn.staticfile.org/react-dom/16.4.0/umd/react-dom.development.js"></script>
<script src="https://cdn.staticfile.org/babel-standalone/6.26.0/babel.min.js"></script>
babel概念:
由于React是由jsx代码写成的
所以babel的作用是将jsx代码转成JavaScript代码,再进行浏览器渲染
所以script标签中要写成
<script type="text/babel">
...
</script>
React页面:
在页面中提供一个入口标签
<div id="app"></div>
利用ReactDom来渲染Dom元素
ReactDom.render(
<div>这是一个被渲染的div</div>,
document.getElementById('app')
)
React组件:
创建React组件的方法有两种
第一种:
利用function函数直接定义组件
// 创建组件
function CreateNewComponent(){
return (
<div>这是新创建的一个组件</div>
)
}
注意:创建的组件中,组件名一定要按大驼峰命名,函数体内一定要写return,如果不返回任何内容的话,需要 return null; 不写则会报错
第二种:
利用class创建组件
// 创建组件
class NewComponent extends React.Component{
user = {
name:'阿帕奇',
age:26
}
render(){
return (
<span>我的名字是+{this.user.name}+",我"+{this.user.age}+"岁"</span>
)
}
}
父子组件嵌套及传参:
// 父组件
class ParentCat extends React.Compontent{
cat = {
name:'大汤姆',
age:3
}
render(){
return (
<div>
<h3>{this.cat.name+"的年龄是"+this.cat.age+"岁"}</h3>
<h3>{this.cat.name+"的child叫"}<TomChild fatherName={this.cat.name}></TomChild></h3>
</div>
)
}
}
// 子组件
class ChildCat extends React.Compontent{
cat = {
name:'小汤姆',
age:1
}
render(){
return (
<span>{this.cat.name},{this.cat.name+"parent的名字叫"+this.props.fatherName}</span>
)
}
}
React组件的事件触发:
// 事件方法调用组件
class EventMethods extends React.Component{
// 方法函数
fn = (e) => {
console.log(this.refs.buttonRef);// 获取button元素
console.log(e.target);// 获取button元素
console.log(this.refs.inputRef.value);// 获取input中value值
}
dataList = [
{
id:1,
name:'汤姆'
},
{
id:2,
name:'杰瑞'
},
{
id:3,
name:'班科'
}
]
render(){
return (
<div>
<div>
<input type="text" ref="inputRef"/>
</div>
<div>
<button onClick={this.fn} ref="buttonRef">点击获取值</button>
</div>
// 利用map循环数据并渲染到页面当中
{
this.dataList.map((item,index) => {
console.log(item);
return (
<div key={index}>
<span>序号:{item.id}</span>
<br />
<span>名称:{item.name}</span>
</div>
)
})
}
</div>
)
}
}
// 利用ReactDOM渲染组件
ReactDOM.render(
<EventMethods />,
document.getElementById('example')
)
- 上一篇: 前端架构师成长之路:5 分分钟搞懂面试官必问 React 题
- 下一篇: React组件应该如何封装?
猜你喜欢
- 2024-11-24 React源码分析与实现(一):组件的初始化与渲染「实践篇」
- 2024-11-24 React 最简单的入门应用项目
- 2024-11-24 「干货」深入浅出React组件逻辑复用的那些事儿
- 2024-11-24 「干货满满」React Hooks 最佳实践
- 2024-11-24 React开发必须知道的34个技巧
- 2024-11-24 React组件应该如何封装?
- 2024-11-24 前端架构师成长之路:5 分分钟搞懂面试官必问 React 题
- 2024-11-24 只会Vue的我,用两天学会了react,这个方法您也可以
- 2024-11-24 react高质量笔记_9(Diffing算法)
- 2024-11-24 说说你在使用React 过程中遇到的常见问题?
- 最近发表
- 标签列表
-
- gitpush (61)
- pythonif (68)
- location.href (57)
- tail-f (57)
- pythonifelse (59)
- deletesql (62)
- c++模板 (62)
- css3动画 (57)
- c#event (59)
- linuxgzip (68)
- 字符串连接 (73)
- nginx配置文件详解 (61)
- html标签 (69)
- c++初始化列表 (64)
- exec命令 (59)
- canvasfilltext (58)
- mysqlinnodbmyisam区别 (63)
- arraylistadd (66)
- node教程 (59)
- console.table (62)
- c++time_t (58)
- phpcookie (58)
- mysqldatesub函数 (63)
- window10java环境变量设置 (66)
- c++虚函数和纯虚函数的区别 (66)