美文网首页
React-native 移动端与Web端融合

React-native 移动端与Web端融合

作者: cherishyan | 来源:发表于2017-03-01 10:18 被阅读256次

为了React-native在Web端调试和实践三端"Write once"的可能,我采用taobaoFED的React-Web做了一些融合实践,实现了将React-native 项目运行在Web浏览器上。

  • 环境: MacOS,node v6.7.0

  • 首先全局React-web的cli命令:

npm install react-web-cli -g
  • 这里以新建的项目为例:
react-web init <项目名>

它会npm install相关库,并生成webpack.config.js

这里注意,如果是init出来的项目,react和react-native 的版本可能为15.4.2,即现在react和react-native的最新版本。那么要将react和react-native的版本降低如15.3.2,不然会有一系列的问题。

  • 完成后我们新建入口文件,index.web.js或者index.android.js都行,然后在webpack.config.js中配置入口:
var config = {
  paths: {
    src: path.join(ROOT_PATH, '.'),
    index: path.join(ROOT_PATH, 'index.web'),//or 'index.android'
  },
};
  • 然后在index.web.js或者index.android.js中加入react-native代码。最后我们需要将react-native 的virtual dom展示的UI放在Web端的DOM树中:
if (Platform.OS == 'web') {
  var app = document.createElement('div');
  document.body.appendChild(app);
  AppRegistry.runApplication('yourentername', {
    rootTag: app
  });
}
  • 如果使用了flex布局,遇到web浏览器上显示的布局有问题,需要考虑一下兼容问题。

  • 现在的react-web目测还没有兼容到最新的react版本:15.4.2,附上成功项目的配置版本,可以解决很多编译问题:

package.json:

{
  "name": "xxx",
  "version": "0.0.1",
  "private": true,
  "dependencies": {
    "antd-mobile": "^0.9.17",
    "react": "^15.3.2",
    "react-dom": "^15.3.2",
    "react-native": "^0.41.2",
    "react-web": "0.4.6"
  },
  "devDependencies": {
    "babel-loader": "^6.2.5",
    "babel-plugin-import": "^1.1.1",
    "babel-preset-react-native": "^1.9.0",
    "babel-preset-stage-1": "^6.16.0",
    "haste-resolver-webpack-plugin": "^0.2.2",
    "html-webpack-plugin": "^2.28.0",
    "json-loader": "^0.5.4",
    "react-hot-loader": "^1.3.0",
    "webpack": "^1.13.2",
    "webpack-dev-server": "^1.16.1",
    "webpack-html-plugin": "^0.1.1"
  }
}

相关文章

  • React-native 移动端与Web端融合

    为了React-native在Web端调试和实践三端"Write once"的可能,我采用taobaoFED的Re...

  • 关于移动应用消息处理一些总结

    与web端产品不同,移动端app与用户更贴近,移动设备时刻在用户身边,全天24小时开机联网,信息到达率相比web端...

  • WEB兼容性测试----移动端兼容矩阵的设计

    上期文章分享了PC端的web兼容测试,本期我们通过调研移动端web的特性和移动端浏览器特性,进一步探讨Web移动端...

  • 产品经理的初步接触

    目前你的产品按照终端可以分为三类:PC端,WEB端(包括WAP),移动端。对于目前而言对于移动端和WEB端的产品经...

  • iOS中 HTML中字符实体转化为可直接显示字符

    由于项目是web端和移动端通用的数据,有的时候有些字符web端显示正常.但到了移动端就会直接显示字符的实体名称. ...

  • HTML基础

    新的征程 web前端介绍 web前端开发做什么 pc端web开发;移动端web开发;混合app开发;网页游戏/移动...

  • 移动端

    app Web App Hybird App 移动端页面 设计图 测试 移动端的设置 移动端的布局 弹性 fl...

  • 不同端测试对比

    ios和android的差别 移动端和web端区别

  • react-native调试之 vscode调试

    做react-native的人很多都是web端转过来的,web端习惯于用chrome 进行调试,对于react-n...

  • 移动布局

    移动web开发流式布局 ====================== 1.0 移动端基础 1.1浏览器现状 PC端...

网友评论

      本文标题:React-native 移动端与Web端融合

      本文链接:https://www.haomeiwen.com/subject/zwhqgttx.html