网站首页 > 基础教程 正文
最近两天抽了点时间用于学习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 过程中遇到的常见问题?
- 06-09Socioeconomic growth goals high on meetings' agenda
- 06-09Cities Along Middle Reaches of Yangtze River Agree on 63 Cooperation Items
- 06-09Scientists to make flag flutter on moon
- 06-09CBN丨Foreign-funded institutions bullish on Chinese assets
- 06-09Full Text: Joint Statement between the People's Republic of China and the French Republic on Climate Change on the occasion of the Tenth Anniversary of the Paris Agreement
- 06-092022年底总结,温暖和激励自己的文案
- 06-09百度实时推送代码解决方案(百度实时推送工具)
- 06-09PHP漏洞之跨网站请求伪造(php跨站脚本攻击)
- 最近发表
-
- Socioeconomic growth goals high on meetings' agenda
- Cities Along Middle Reaches of Yangtze River Agree on 63 Cooperation Items
- Scientists to make flag flutter on moon
- CBN丨Foreign-funded institutions bullish on Chinese assets
- Full Text: Joint Statement between the People's Republic of China and the French Republic on Climate Change on the occasion of the Tenth Anniversary of the Paris Agreement
- 2022年底总结,温暖和激励自己的文案
- 百度实时推送代码解决方案(百度实时推送工具)
- PHP漏洞之跨网站请求伪造(php跨站脚本攻击)
- ThinkPHP后台入口地址查找(thinkphp build.php)
- PHP新手如何提高代码质量(php新手如何提高代码质量的方法)
- 标签列表
-
- jsp (69)
- gitpush (78)
- gitreset (66)
- python字典 (67)
- dockercp (63)
- gitclone命令 (63)
- dockersave (62)
- linux命令大全 (65)
- pythonif (86)
- location.href (69)
- dockerexec (65)
- tail-f (79)
- queryselectorall (63)
- location.search (79)
- bootstrap教程 (74)
- deletesql (62)
- linuxgzip (68)
- 字符串连接 (73)
- html标签 (69)
- c++初始化列表 (64)
- mysqlinnodbmyisam区别 (63)
- arraylistadd (66)
- mysqldatesub函数 (63)
- window10java环境变量设置 (66)
- c++虚函数和纯虚函数的区别 (66)