RN 基础

React和RN:
React是facebook页面组件的抽象和形态的技术方案--Web
RN app 编译后的原生应用
JavaScript用在不同的地方
ReactNative 框架,jsc react
跨平台,组件,web的发布能力
提供了原生ui组件,手势识别,FlexBox的css布局模式,跨平台,可使用npm中的模块,
特点:JSX语法,组件化模式,Virtual DOM ,单向数据流
基本模式:每个React应用组件组合,组件是由属性和状态来配置,当状态发生变化时更新ui,组件结构是由虚拟的DOM来维护,确保了实际更新的DOM只包括真正产生了状态变化的部分
同一套技术应用不同端

环境搭建
 最新系统
 xcode-select --install
 homebrew 环境变量等等一条龙服务
 watchman和flow:监视文件并记录文件改动情况和检查JavaScript的静态类型的检查器,找出JS代码中的类型错误
 git等
 nodejs nvm nvm alias default install 
 检查端口是否在使用
 装RN
 

使用Sublime Text 编写JSX 
SublimeText 3 安装package control 
    Control+~
    Commond+Shift+P
    install package control
    babel
    也就是为了识别JSX 

新建项目:
1、// 创建新项目,项目名称为Test
 react-native init HelloReact

2、执行

adb devices 
  // 上述会列出当前可以使用的设备,如果列表为空,则后续的无法运行。
  // 第二步,开启一个命令行控制台,进入项目目录 
  react-native start
  // 上述命令是开启jsbundle服务器,用于测试设备上Reload JS的服务器。
  // 第三步, 再开启一个新的命令行控制台,进入项目目录
  react-native run-android
 在调用react-native run-android命令时,其实这个命令就是执行的两部分操作一是是构建你的android项目并生成apk,另外一个是打开react-native的package管理工具同时编译你的js文件,其实可以在项目根目录的package.json下找到

热更新,页面调试

RN 项目结构:

    package.json记录一些模块版本信息
    node_modules/react-native packager 负责读取JSX和构建JavaScript代码 打包工具
                          
local_cli 
                          
node_modules/art 在RN绘制 JS 类库 
android 放置源代码地方等等,babel ES5
    ios
入口文件
    index_android.js

   .flowconfig JS 代码检查
   哪些要检查哪些不要
gitignore

 

入口文件包含的4个部分:

    导入模块 ES6 import 
   class extends
   render return JSX 语法格式

   const
   registerComponent注册 

原理:
1 React Native for Android 和 for IOS的基本原理是一致的,通过android的JavaScriptCore来异步解析js代码(jsbundle文件),然后根据引入的支持和配置,渲染成原生native组件。

JSX 允许我们写 HTML 标签或 React 标签,它们终将被转换成原生的 JavaScript 并创建 DOM。


React 是一套可以用简洁的语法高效绘制 DOM 的框架
所谓的“高效”,是因为 React 独创了 Virtual DOM 机制。Virtual DOM 是一个存在于内存中的 JavaScript 对象,它与 DOM 是一一对应的关系,也就是说只要有 Virtual DOM,我们就能渲染出 DOM。
当界面发生变化时,得益于高效的 DOM Diff 算法,我们能够知道 Virtual DOM 的变化,从而高效的改动 DOM,避免了重新绘制 DOM。

2 复用React系统,也减少了一定学习和开发成本,更重要的是利用了React里面的分层和diff机制。js层传给Native层的是一个diff后的json,然后由Native将这个数据映射成真正的布局视图。

组件生命周期:


 ES5/6组件形态区别:

1.引入模块的语法不同 
2.组件的声明方式 
3-4.创建组件的方式所导致的语法不同(, ;)
5.组件内静态成员的声明方式 
6.对象方法的简写形式
7.ES6不支持mixin
8.组件内的this指向 
9.变量声明关键字

React 和 MVC















评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值