React Native移动开发实战-1-React Native的JSX解决方案

JSX并不是一门新的开发语言,而是Facebook提出的语法方案:一种可以在JavaScript代码中直接书写HTML标签的语法糖,所以,JSX本质上还是JavaScript语言。

小知识:语法糖(Syntactic sugar)是由英国计算科学家彼得·兰丁(https://zh.wikipedia.org/
wiki/%E5%BD%BC%E5%BE%97%C2%B7%E5%85%B0%E4%B8%81)发明的一个术语,指计算机语言中添加的某种语法,这种语法对语言的功能并没有影响,但是更方便程序员使用。语法糖让程序更加简洁,有更高的可读性。

在React和React Native开发中,不一定非要使用JSX,也可以直接使用JavaScript进行开发。但是,强烈建议读者使用JSX!因为JSX在定义类似HTML这种树形结构时,简单明了,极大地提高了开发和维护的效率。
下面以1.4节第一个React Native应用中的代码为例:

01    export default class ch02 extends Component {     // 每个页面可以理解成一个组件
02        render() {                                     // 渲染页面函数
03            return (
04                <View style={styles.container}>     // 页面根View
05                    <Text style={styles.welcome}>
06                        Welcome to React Native!
07                    </Text>
08                    <Text style={styles.instructions}>
09                        To get started,edit index.ios.js
10                    </Text>
11                    <Text style={styles.instructions}>
12                         Press Cmd+R to reload,{'\n'}
13                        Cmd+D or shake for dev menu
14                    </Text>
15                </View>
16             );
17        }
16    }

在上述代码中,组件的render()方法函数是用于渲染页面的,它的返回值是一个View的对象,但是为什么没有发现创建对象和设置属性代码呢?原来,JSXTransformer帮我们把代码中XML-Like语法编译转换成真实可用的JavaScript代码,它不仅仅创建View对象、设置View样式和布局,同时更加贴心的是,还构建了View之间的树形结构。例如,上述例子中的树形结构是这样的:

Root View (style container)
---- Sub Text 1 (style welcome)
---- Sub Text 2 (style instructions)
---- Sub Text 3 (style instructions)

和我一起学吧,《React Native移动开发实战》

相关文章

一、前言 在组件方面react和Vue一样的,核心思想玩的就是组件...
前言: 前段时间学习完react后,刚好就接到公司一个react项目...
前言: 最近收到组长通知我们项目组后面新开的项目准备统一技...
react 中的高阶组件主要是对于 hooks 之前的类组件来说的,如...
我们上一节了解了组件的更新机制,但是只是停留在表层上,例...
我们上一节了解了 react 的虚拟 dom 的格式,如何把虚拟 dom...