Vue於React特性對比(四)

新開了一個vue的項目,從vue單頁面框架搭建到單點登陸接入都是本身負責搞的。而後準備將這套東西遷移到react上。而後有了這篇文章。css

1,reactjs分環境打包明顯要比vue更爲麻煩vue

vue修改的東西比較簡單。但reactjs若是不進行eject,只能在引入一個社區解決方案react

 react-app-rewired 

  而後react-app-rewired發揮做用,還須要一個配套的配置文件config-overrides.js放置在根目錄下,代碼webpack

module.exports = function override(config, env) {
  // do stuff with the webpack config...
  return config;
};

   而後創建不一樣環境下的參數數據:好比須要三個環境分別爲開發,測試,上線,那就須要三個文件分別爲.env.development  .env.test  .env.production。同時web

內部的參數須要使用固定前綴REACT_APP_‘具體參數名’vue-cli

    而後在修改原來的命令行命令,package.json修改部分代碼json

"scripts": {
    "start": "dotenv -e .env.development react-app-rewired start",
    "build:prod": "dotenv -e .env.production react-app-rewired build",
    "build:test": "dotenv -e .env.test react-app-rewired build",
    "test": "react-app-rewired test --env=jsdom"
  },

  顯然須要安裝dotenv-cli。api

       這些配置以後就能夠經過process.env.參數名拿到變量值了。app

       固然也能夠對create-react-app建立的項目模板進行eject,而後只須要在不一樣的構建文件也就是框架

       

文件進行不一樣環境下的變量設置就能夠了,一樣要以REACT_APP_開頭,上面圖片中的pre是我建立的仿真環境。

對比:vuec-li建立的項目模板針對不一樣環境的分包打包

這裏面是一個導出一個對象,針對不一樣的環境,而後修改

將env變量原來的設置註釋,修改成以下

// const env = require('../config/prod.env')
const env = process.env.NODE_ENV === 'testing'
  ? require('../config/test.env')
  : require('../config/prod.env')

  兩者對比,vue簡單許多。不須要額外的配置項。

2,create-react-app沒有全局攔截器這種現成的api,而vue-cli直接封裝好了

3,create-react-app不能夠直接寫css,而.vue文件能夠

待續……

相關文章
相關標籤/搜索