react native 包学不包会系列--react native开发基础知识

283 阅读3分钟

git

关于git的具体使用,可以查看我的另外一篇比较详细的git实用记录

jsx

jsx它不是一种新的开发语言,它是一种语法方案: 一种能在javascript中直接书写html标签的语法糖,所以它本质上还是js,是js的一种优雅语法糖 当然并不是必须要学习jsx你才可以开始React Native,jsx是为构造React元素方法React.createElement(component, props, ...children)设计的语法糖。 比方说JSX代码:

<Elem color="red" info="hello">Hello!<Elem/>

用标准的React语法写出来应该是:

React.creatElement({
  Elem,
  {
    color:red,
    info:"hello"
  },
  "Hello!"
});

但是以我的使用经验,jsx在定义html这种树形结构时,简单明了,极大地提高了我们的开发与维护效率。就是一个可以事半功倍的东西,花点时间学学,何乐不为呢。而强大的babel就为我们做了这个jsx的语法糖解析工作,如果想要看jsx与js的语法转换,可以看这边
关于jsx的具体用法,看这里
具体的使用方法我这边就说了,其实很简单,对前端来说也是很快上手,就说几个在使用过程中要注意的点:

  • 用户自定义的组件首字母必须大写,一个组件只能有一个顶层对象,不管在react还是react native中毅然
  • 如果是在react项目中, 自定义标签必须在react的作用范围内
  • 可以使用符号【.】来调用子组件
  • 组件的开始标签和闭合标签之间的内容是一个特殊的props——props.children,组件嵌套中的所有内容也都是props.children

flexbox

各位前端开发,应该都知道布局对网页开发的重要性,而如雷贯耳的盒子模型,让我们来回顾一下:

css的盒子模型,依赖于postion、float、以及display三者来进行布局,但是对于一些常用但是特殊的布局比如垂直居中,实现起来就不够优雅了。(如果你对盒子布局如何解决各种布局要求有兴趣,看这里)而flexbox,即弹性盒子布局,即使容器与容器元素的大小未知或者动态性的,都可以控制他们的布局。flexbox布局的主要思想就是让容器有能力让其子元素能够改变其宽度,高度,顺序,以你想要的最佳方式在空间中布局,这使得flexbox布局能够很灵活地使用所有类型的设备于屏幕大小。而React Native的布局基础就是flexbox布局,不仅使得ui开发更加简便,也很好地解决了ios与按照的屏幕适配问题

react native 实现的flexbox布是会跟web布局有所细微的不同,比如flex-direction 的默认值是column不是row,align-ITEM的默认值是stretch而非flex-start,还有flex只能指定一个数字值。但是没有关系,这些不是很大的学习障碍

让我们来了解下flexbox的属性值: 父元素的属性: 父元素不用设置display:flex,第一步就跟web不同了哈,因为默认都是display:flex flexDirection: column(默认值)、 row、 row-reverse flexWrap 当子组件内容溢出父组件的时候,是否需要换行 取值: