React.js自学第一天

一、what:一个为数据提供渲染的HTML视图开源的js库。

二、why:遇到的问题:①大量的DOM操作=>虚拟DOM算法,实现DOM的自动操作。

                                ②逻辑非常复杂=>state与内容对应起来。

三、推出理念:Learn once ,Write anywhere。

四、React特点:①声明式的设计:采用声明范式,可以轻松描述应用。

                      ②高效:虚拟DOM算法 最大限度减少与DOM的交互。

                      ③灵活:方便的搭配其他框架来使用。

                      ④jsx 是js语法的扩展。

                      ⑤组件:构建组件,方便复用。

五、废话太多了,直接上我们的Hello React了。

                   

                    ①三个js文件必须按顺序引入,否则会报错

                    ②找一下还有什么不一样的地方 “type=text/babel”这又是什么鬼?其实是等价于type=text/jsx,jsx又是什么鬼?jsx是js语法的扩展,不是一门新的语言!

                    ③通过React的基本方法,ReactDOM.render(参数1,参数2),将参数1渲染到参数2中,并插入到指定的DOM节点中!

六、jsx的语法:①遇到HTML标签(<),就使用HTML来解析;

                     ②遇到代码块({}),就会使用js来解析;

七、创建组件:

                  画个图分析一下

                     

这个代码有点长了,我就直接copy过来了                      

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script src="javascripts/react.js"></script>
<script src="javascripts/react-dom.js"></script>
<script src="javascripts/browser.min.js"></script>
</head>
<body>
<div id="example"></div>
<script type="text/babel">
var UserName = React.createClass({
render:function () {
return <b>username</b>
}
})
var InputName = React.createClass({
render:function () {
return <input placeholder="place input username"/>
}
})
var PassWorld = React.createClass({
render:function () {
return <b>passwrold</b>
}
})
var InputPass = React.createClass({
render:function () {
return <input placeholder="place input passwrold"/>
}
})
var UpButton = React.createClass({
render:function () {
return <button>Signup</button>
}
})
var InButton = React.createClass({
render:function () {
return <button>Signin</button>
}
})
ReactDOM.render(
<div>
<UserName/>
<InputName/>
<br/>
<PassWorld/>
<InputPass/>
<br/>
<UpButton/>
<InButton/>
</div>,
document.getElementById('example')
)
</script>
</body>
</html>

 注意:①组件的首字母 必须是大写的。(React中是根据标签的首字母判断是原生的HTML标签还是自定义的组件)

         ②在创建组件的时候,render方法中如果要返回多个元素,需要一个顶层标签,否则是会报错的。

今天就先到这里吧,菜鸟一个希望大家多多指教,明天有空的话优化这个组件!

原文地址:https://www.cnblogs.com/copper6/p/6780470.html