React Native 爬坑之路

1.react 基础 (创建组件及在浏览器上渲染组件)

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
	<!-- 1.react.js是React的核心库 -->
	<script src="js/react.min.js" charset="utf-8"></script>
	<!-- 2.react-dom.js的作用是提供与DOM相关的功能 -->
	<script src="js/react-dom.min.js" charset="utf-8"></script>
	<!-- 3.browser.min.js的作用是将JSX语法转换成JavaScript语法 -->
	<script src="js/browser.min.js" charset="utf-8"></script>
	<!-- <script src="https://cdnjs.cloudflare.com/ajax/libs/babel-core/5.8.24/browser.min.js" charset="utf-8"></script> -->
</head>
<body>
	<!-- 6.React渲染的模板内容会插入到这个DOM节点中,作为一个容器 -->
	<div id="container">

	</div>
</body>
<!-- 4.在React开发中,使用JSX,跟JavaScript不兼容,在使用JSX的地方,要设置type:text/babel -->
<!-- 5.babel是一个转换编译器,ES6转成可以在浏览器中运行的代码 -->
<script type="text/babel">
	// 7.在此处编写React代码

	// 8.需求:渲染一行标题,显示"Hello React"
	//
	/*
		ReactDOM.render()
		React的基本方法,用于将模板转换成HTML语言,渲染DOM,并插入指定的DOM节点中

		3个参数
		第一个:模板的渲染内容(HTML形式)
		第二个:这段模板需要插入的DOM节点(本程序中,是id为container的div节点)
		第三个:渲染后的回调,一般不用
	*/

	// ReactDOM.render(
	// 	<h1>Hello React</h1>,
	// 	document.getElementById("container")
	// );

	/*
		JSX入门

		JSX不是一门新的语言,是个语法(语法糖)
	*/

	// 1.JSX必须借助React环境运行

	// 2.JSX标签其实就是HTML标签,只不过我们在JavaScript中书写这些标签的时候,不用使用""括起来,
	// 可以像XML一样书写

	ReactDOM.render(
		<h1>
			Hello React
		</h1>,
		document.getElementById("container")
	);

	// 3.转换:JSX语法能够让我们更直观的看到组件的DOM结构,不能直接在浏览器上运行,最终会转化成JavaScript代码执行

	ReactDOM.render(
		React.createElement("h1",null,"Hello React"),
		document.getElementById("container")
	);

	// 4.在JSX中运行JavaScript代码
	// 使用{}括起来  {表达式}
	//

	var text = "百度";
	ReactDOM.render(
		<h1>{text}</h1>,
		document.getElementById("container")
	);

	// 5.例如:属性、设置样式、事件绑定
</script>
</html>

2.设置组件样式

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
	<!-- 1.react.js是React的核心库 -->
	<script src="js/react.min.js" charset="utf-8"></script>
	<!-- 2.react-dom.js的作用是提供与DOM相关的功能 -->
	<script src="js/react-dom.min.js" charset="utf-8"></script>
	<!-- 3.browser.min.js的作用是将JSX语法转换成JavaScript语法 -->
	<script src="js/browser.min.js" charset="utf-8"></script>
	<!-- <script src="https://cdnjs.cloudflare.com/ajax/libs/babel-core/5.8.24/browser.min.js" charset="utf-8"></script> -->

	<style>
		.pStyle {
			font-size: 20px;
		}
	</style>
</head>
<body>
	<!-- 6.React渲染的模板内容会插入到这个DOM节点中,作为一个容器 -->
	<div id="container">

	</div>
</body>
<!-- 4.在React开发中,使用JSX,跟JavaScript不兼容,在使用JSX的地方,要设置type:text/babel -->
<!-- 5.babel是一个转换编译器,ES6转成可以在浏览器中运行的代码 -->
<script type="text/babel">
	// 7.在此处编写React代码

	/*
		创建一个组件类,用于输出Hello React

		1.React中创建的组件类以大写字母开头,驼峰命名法
		2.在React中使用React.createClass方法创建一个组件类
		3.核心代码:每个组件类都必须实现自己的render方法。输出定义好的组件模板。返回值:null、false、组件模板
		4.注意:组件类只能包含一个顶层标签
	*/

	// var HelloMessage = React.createClass({
	// 	render:function(){
	// 		return <h1>Hello React</h1>;
	// 	}
	// });

	// // 渲染
	// ReactDOM.render(
	// 	// 在模板中插入<HelloMessage />会自动生成一个实例
	// 	<HelloMessage />,
	// 	document.getElementById("container")
	// );

	/*
		设置组件的样式,三种:
		1.内联样式
		2.对象样式
		3.选择器样式

		注意:在React和HTML5中设置样式时的书写格式是有区别的
		* 1.HTML5以 ; 结尾
			React以 , 结尾
		* 2.HTML5中key、value都不加引号
			React中属于JavaScript对象,key的名字不能出现"-",需要使用驼峰命名法(例:backgroundColor)。如果value为字符串,需要加引号。
		* 3.HTML5中,value如果是数字,需要带单位
			React中不需要带单位

		* 我们定义一个组件类,同时使用三种设置组件样式的方式
		* 需求:定义一个组件,分为上下两行显示内容
		* <div> 内联样式:设置背景颜色,边框大小,边框颜色
		* 	<h1></h1> 对象样式:设置背景颜色,字体颜色
		* 	<p></p> 选择器样式:设置字体大小
		* </div>
		*
		* class 和 for 是React中的保留字
		* 注意:在React中使用选择器样式设置组件样式时,属性名不能使用class,需要使用className替换。
		* 类似的:使用htmlFor替换for
	*/

	// 创建设置h1样式对象
	var hStyle = {
		backgroundColor:"green",
		color:"red"
	}
	// 创建组件 通过this.props传值
	var ShowMessage = React.createClass({
		render:function() {
			return (
				// 外面的{}是JSX语法,里面的{}表示对象
				<div style={{backgroundColor:"yellow",borderWidth:5,borderColor:"black",borderStyle:"solid"}}>
					<h1 style={hStyle}>{this.props.firstRow}</h1>
					<p className="pStyle">{this.props.secondRow}</p>
				</div>
			);
		}
	});

	ReactDOM.render(
		<ShowMessage firstRow="你好" secondRow="世界" />,
		document.getElementById("container")
	);
</script>
</html>

3.复合组件

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
	<!-- 1.react.js是React的核心库 -->
	<script src="js/react.min.js" charset="utf-8"></script>
	<!-- 2.react-dom.js的作用是提供与DOM相关的功能 -->
	<script src="js/react-dom.min.js" charset="utf-8"></script>
	<!-- 3.browser.min.js的作用是将JSX语法转换成JavaScript语法 -->
	<script src="js/browser.min.js" charset="utf-8"></script>
	<!-- <script src="https://cdnjs.cloudflare.com/ajax/libs/babel-core/5.8.24/browser.min.js" charset="utf-8"></script> -->
</head>
<body>
	<!-- 6.React渲染的模板内容会插入到这个DOM节点中,作为一个容器 -->
	<div id="container">

	</div>
</body>
<!-- 4.在React开发中,使用JSX,跟JavaScript不兼容,在使用JSX的地方,要设置type:text/babel -->
<!-- 5.babel是一个转换编译器,ES6转成可以在浏览器中运行的代码 -->
<script type="text/babel">
	// 7.在此处编写React代码

	/*
		复合组件

		也被称为组合组件,创建多个组件合成一个组件。
	*/

	/*
		定义一个组件WebShow。功能:输出网站的名字和网址,网址是一个可以点击的链接。
		分析:定义一个组件WebName负责输出网站名字,定义组件WebLink显示网站的网址,兵器可以点击
	*/

	// 定义WebName组件
	var WebName = React.createClass({
		render:function() {
			return <h1>百度</h1>;
		}
	});

	// 定义WebLink组件
	var WebLink = React.createClass({
		render:function() {
			return <a href="http://www.baidu.com">http://www.baidu.com</a>;
		}
	});

	// 定义复合组件 WebShow
	var WebShow = React.createClass({
		render:function() {
			return (
				// 嵌套组件
				<div>
					<WebName />
					<WebLink />
				</div>
			);
		}
	});

	// 将组件类WebShow渲染到网页上
	ReactDOM.render(
		<WebShow />,
		document.getElementById("container")
	);
</script>
</html>

4.

时间: 2024-10-11 18:59:08

React Native 爬坑之路的相关文章

多线程爬坑之路-Thread和Runable源码解析之基本方法的运用实例

前面的文章:多线程爬坑之路-学习多线程需要来了解哪些东西?(concurrent并发包的数据结构和线程池,Locks锁,Atomic原子类) 多线程爬坑之路-Thread和Runable源码解析 前面大致的了解了Thread的一些方法和属性下面对一些方法进行运用看看具体效果<下面可能还是会贴很多的源代码,其实我是拒绝的,我只想贴每个方法的代码,但是有时候看到一个方法里面有调用了方法,但是笔者有没有给出来,很蛋疼,有种爽到一半的感觉,所以我还是会把它贴出来,希望一次就能挖到底,不论有没有全懂,但至

vue 爬坑之路---can&#39;t resolve &#39;sass-loader&#39;

环境设置好以后 本以为可以开心的写代码了, 谁料到如下报错,大概意思就是不能编译 sass-loader 这个玩意. 那怎么办?? 安装依赖,不然能怎么办? 第一个依赖: npm install sass-loader 第二个依赖: npm install node-sass 这样安装了之后,然后npm run dev  ,世界一片祥和~ vue 爬坑之路---can't resolve 'sass-loader' 原文地址:https://www.cnblogs.com/liuguoying/

React native采坑路

1. Running 1 of 1 custom shell scripts 卡住的问题. 分析: 四个文件没有下载完成. boost_1_63_0.tar.gz folly-2016.09.26.00.tar.gz double-conversion-1.1.5.tar.gz glog-0.3.4.tar.gz 1.下载文件 ---->这里有解决方案: http://bbs.reactnative.cn/topic/4301/ios-rn-0-45%E4%BB%A5%E4%B8%8A%E7%8

安卓易学,爬坑不易——腾讯老司机的RecyclerView局部刷新爬坑之路

针对手游的性能优化,腾讯WeTest平台的Cube工具提供了基本所有相关指标的检测,为手游进行最高效和准确的测试服务,不断改善玩家的体验.目前功能还在免费开放中. 点击地址:http://wetest.qq.com/cube立即体验! 作者:Hoolly,腾讯移动客户端开发工程师. 商业转载请联系腾讯WeTest获得授权,非商业转载请注明出处 WeTest导读 安卓开发者都知道,RecyclerView比ListView要灵活的多,但不可否认的里面的坑也同样埋了不少人.下面让我们看看腾讯开发工程

react native新手学习之路03真机调试

React Native新手入门03真机调试(iOS) 从设备访问开发服务器 在启用开发服务器的情况下,你可以快速的迭代修改应用,然后在设备上查看结果.这样做的前提是你的电脑和设备必须在同一个wifi环境下. 打开AwesomeApp/ios/AwesomeApp/AppDelegate.m修改里面的URL,把localhost改为你的电脑的IP.在Mac系统下,你可以在系统设置/网络里找到电脑的IP地址. eg: jsCodeLocation = [NSURL URLWithString:@"

Tinker + Bugly + Jenkins 爬坑之路

前阵子 Android 端的线上崩溃比较多,热修复被提上日程.实现方案是 Tinker,Jenkins 打包,最后补丁包上传到 Bugly 进行分发.主要在 Jenkins 打包这一块爬了不少坑,现记录下来,供大家参考. 1. Tinker + Bugly热修复实现 首先是本地实现,按照官方文档,只要一步一步按照文档来,这个步骤还是比较容易的,这里就不再赘述了,不懂的可以先参考官方文档:Bugly Android热更新使用指南.Bugly Android热更新详解.这里贴一下接入流程: 打基准包

react js踩坑之路(一)

讲真如果让我选个主流的mvvm框架做项目,我会果断选择vue,写起来不要太方便哦.但是,pc端要兼容ie8这个坑货,所以pc端只好选用react了啦~移动端果断用vue咯 再来讲讲构建工具,还是基于webpack 和 gulp,然后将react和vue 分开打包相关配置如下 webpack会依次将公用的打包到vendors.js .react的打包到react中,vue相关的打包到vue中,最后剩下的部分打包到load.js中. 下面直接用react实现一个后台页面的container组件吧,这

Vue 爬坑之路(二)—— 组件之间的数据传递

Vue 的组件作用域都是孤立的,不允许在子组件的模板内直接引用父组件的数据.必须使用特定的方法才能实现组件之间的数据传递. 首先用 vue-cli 创建一个项目,其中 App.vue 是父组件,components 文件夹下都是子组件. 一.父组件向子组件传递数据 在 Vue 中,可以使用 props 向子组件传递数据. 子组件部分: 这是 header.vue 的 HTML 部分,logo 是在 data 中定义的变量. 如果需要从父组件获取 logo 的值,就需要使用 props: ['lo

vue爬坑之路3

插值 文本 数据绑定最常见的形式就是使用"Mustache"语法(双大括号)的文本差值: <span>Message:{{msg}}</span> Mustache标签将会被替代为对应数据对象上msg属性的值.无论何时,绑定的数据对象上msg属性发生了改变,插值处的内容都会更新. 通过使用v-once指令,能一次性地插值,当数据改变时,插值处的内容不会更新.但要注意这会影响到该节点上所有的数据绑定: <span v-once>This will ne