最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

教你使用vscode 搭建react-native開發(fā)環(huán)境

 更新時(shí)間:2021年07月07日 11:43:35   作者:過兒9973  
本文記錄如何使用vscode打造一個(gè)現(xiàn)代化的react-native開發(fā)環(huán)境,旨在提高開發(fā)效率和質(zhì)量。本文給大家分享我遇到的問題及解決方法,感興趣的朋友跟隨小編一起看看吧

問題

代碼沒有提示:
許多剛接觸RN開發(fā)的非前端同學(xué),都會(huì)問“哪個(gè)編輯器有智能提示?”。。。而對(duì)于前端同學(xué)來說,現(xiàn)在的日子已經(jīng)好很多了,要什么自行車。

低級(jí)代碼錯(cuò)誤:
這里的錯(cuò)誤是指類似拼寫錯(cuò)誤,符號(hào)錯(cuò)誤等。寫完代碼,跑起來各種報(bào)錯(cuò),有時(shí)候費(fèi)死勁的找,最后發(fā)現(xiàn)是個(gè)中文的分號(hào)問題。

解決辦法

可選的方案大概有:

  1. 使用typescript: 直接使用有靜態(tài)類型支持的js版本,but要再學(xué)習(xí)一套語法,而且我的代碼都是ts寫的,但很多好的公共庫不是啊。
  2. 使用flow: 由于網(wǎng)絡(luò)的原因,這個(gè)環(huán)境真的難配,同時(shí)也是要學(xué)習(xí)一些新的語法。

我們的選擇:vscode + typings + eslint

  • vscode: 宇宙最強(qiáng)IDE家族的最新產(chǎn)品
  • typings: 基于typescirpt的接口文件
  • eslint: 代碼靜態(tài)檢查,技能檢測(cè)低級(jí)的語法錯(cuò)誤,又能規(guī)范代碼格式和應(yīng)用最佳實(shí)踐

工具和插件

編輯器:vscode.

必裝和推薦的插件如下:

注:

  • 點(diǎn)擊各個(gè)插件,會(huì)有對(duì)應(yīng)的詳細(xì)的說明
  • vscode和插件的更新頻率還是比較快的,推薦及時(shí)更新
  • vscode的插件安裝很簡(jiǎn)單,左側(cè)最下面那個(gè)按鈕就是擴(kuò)展面板,直接搜索插件名字,點(diǎn)擊安裝即可

代碼智能提示

對(duì)于第三方包,比如react-native:

全局安裝typings:

npm install typings -g

安裝react和react-native的接口說明文件:

typings install dt~react --save

typings install dt~react-native --save

等待安裝完成后(會(huì)取決于包的數(shù)目和網(wǎng)絡(luò)狀況),在項(xiàng)目的根目錄下會(huì)有一個(gè)typings目錄和typings.json配置文件:


完成后重啟一下code , 或者使用reload命令,現(xiàn)在react-native和react相關(guān)的代碼就有提示說明了,效果如下:

方法智能提示:

顯示方法的參數(shù):

hover時(shí)顯示說明:

注: 對(duì)于其他的第三方包,可以用類似的方法,或者借助于上面提到的插件。

如果是業(yè)務(wù)代碼開發(fā)者:

對(duì)于規(guī)范的模塊化js代碼,vscode可以自動(dòng)建立聯(lián)系并提示的,我們只需要寫好注釋即可。

如果是工具包或者SDK開發(fā)者:

我們的代碼是要發(fā)布給其他同學(xué)用的,則需要我們?cè)诎l(fā)布時(shí)提供相應(yīng)的.d.ts接口文件。
默認(rèn)是包根目錄下index.d.ts文件,否則需要在package.json配置中指明typings項(xiàng)(類似main)。

如何編寫接口文件:文檔

代碼靜態(tài)檢查

代碼靜態(tài)借助于 eslint,它由CLI和配置文件(規(guī)則)組成。

vscode中安裝了對(duì)應(yīng)插件后,就可以實(shí)時(shí)在編輯器上看到檢測(cè)結(jié)果,不用自己運(yùn)行CLI。

注:本文會(huì)涉及eslint-cli的參數(shù),一般開發(fā)用不到,在寫自動(dòng)化腳本命令時(shí)查下文檔。

先安裝eslint cli和相關(guān)插件,項(xiàng)目package.json中開發(fā)依賴增加(這是比較流行的RN配置):

"devDependencies": {
    "eslint": "^3.3.1",
    "babel-eslint": "^6.1.2",
    "eslint-config-airbnb": "^10.0.1",
    "eslint-plugin-import": "^1.14.0",
    "eslint-plugin-jsx-a11y": "^2.1.0",
    "eslint-plugin-react": "^6.1.2"
}

然后運(yùn)行npm install安裝。

配置文件.eslintrc.js(這里我們采用了js格式,因?yàn)榭梢约幼⑨???蛇xjson格式)

這里可以用eslint init啟動(dòng)向?qū)梢粋€(gè)。

我們可直接使用現(xiàn)成的(好處是和團(tuán)隊(duì)其他項(xiàng)目保持一致),在項(xiàng)目根目錄新建一個(gè).eslintr.js文件,內(nèi)容如下

module.exports = {
  parser: 'babel-eslint',
  parserOptions: {
    sourceType: 'module'
  },
  extends: "airbnb",
  plugins: [
    "react",
    "jsx-a11y",
    "import"
  ],
  rules: {
    // 0 = off, 1 = warn, 2 = error
    // FB配置參考:
    // https://github.com/facebook/react-native/blob/8baaad9b0fbda2b02bb1834452aa63cac7910dc5/.eslintrc

    "global-require": 0,
    "no-use-before-define": 0,       // disallow use of variables before they are defined
    "max-len": 0,                    // specify the maximum length of a line in your program (off by default)
    "no-console": 0,                 // disallow use of console (off by default in the node environment)
    "no-undef": 2,                   // disallow use of undeclared variables unless mentioned in a /*global */ block

    "no-unused-vars": 0,
    "block-scoped-var": 0,           // treat var statements as if they were block scoped (off by default)
    "complexity": 0,                 // specify the maximum cyclomatic complexity allowed in a program (off by default)
    "consistent-return": 0,          // require return statements to either always or never specify values

    // allow async-await
    'generator-star-spacing': 0,

    "no-return-assign": 1,           // disallow use of assignment in return statement

    "react/jsx-filename-extension": 0,
    "react/self-closing-comp": 1,
    "react/jsx-closing-bracket-location": 0,
    "react/prop-types": 0, // 避免redux等注入屬性的情況
  },

  // 這里設(shè)置可能用到的全局變量
  "globals": {
    "window": true,
    "fetch": true,
    "__DEV__": true,
    "__APP__": true,
    "__ANDROID__": true,
    "__IOS__": true
  }
};

這里主要配置了插件和檢測(cè)規(guī)則,一些說明:

  • 規(guī)則列表
  • 規(guī)則后面的 0 代表關(guān)閉, 1 代表顯示警告, 2 代表顯示錯(cuò)誤。有些規(guī)則可以配置參數(shù),具體看上面的規(guī)則列表文檔
  • 有一些簡(jiǎn)單錯(cuò)誤,vscode是可以自動(dòng)修復(fù)的(如果出現(xiàn)小燈泡的icon,就是可以自動(dòng)修復(fù))

這里的規(guī)則基本都是實(shí)踐總結(jié)的js代碼編寫的最佳實(shí)踐,遇到檢測(cè)錯(cuò)誤時(shí),直接搜索規(guī)則,并閱讀說明。

不要隨便就關(guān)閉。

安裝vscode的eslint插件后:

What's more:

可以使用pre-commit工具,在每次提交之前運(yùn)行eslint監(jiān)測(cè)代碼,如果失敗,則禁止提交。

Debug

vscode安裝了react-native-tools插件后,可以代替chromDevTools調(diào)試代碼。

更接近原生的調(diào)試方式。

我們常使用的方式是:

  • 在終端開啟package server
  • vscode選擇,dbug, attach to packager
  • 在終端上,調(diào)出調(diào)試菜單,選擇 Debug JS Remotly

總結(jié)

工欲善其事必先利其器,折騰是值得的。

好的開發(fā)環(huán)境提交提供效率,同時(shí)保障質(zhì)量。

好的開發(fā)體驗(yàn),可以讓你快樂coding。

到此這篇關(guān)于教你使用vscode 搭建react-native開發(fā)環(huán)境的文章就介紹到這了,更多相關(guān)vscode 搭建react-native內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 詳解webpack2+node+react+babel實(shí)現(xiàn)熱加載(hmr)

    詳解webpack2+node+react+babel實(shí)現(xiàn)熱加載(hmr)

    這篇文章主要介紹了詳解webpack2+node+react+babel實(shí)現(xiàn)熱加載(hmr) ,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2017-08-08
  • React掌握openapi-typescript-codegen快速生成API客戶端代碼的過程

    React掌握openapi-typescript-codegen快速生成API客戶端代碼的過程

    openapi-typescript-codegen是一個(gè)開源工具,用于根據(jù)OpenAPI規(guī)范自動(dòng)生成TypeScript代碼,包括類型定義和API客戶端代碼,它幫助開發(fā)者節(jié)省手動(dòng)編寫代碼的時(shí)間,提高開發(fā)效率,感興趣的朋友一起看看吧
    2024-11-11
  • React 首頁加載慢問題性能優(yōu)化案例詳解

    React 首頁加載慢問題性能優(yōu)化案例詳解

    這篇文章主要介紹了React 首頁加載慢問題性能優(yōu)化案例詳解,本篇文章通過簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-09-09
  • React 全面解析excel文件

    React 全面解析excel文件

    這篇文章主要介紹了React 全面解析excel文件,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-09-09
  • React Native開發(fā)封裝Toast與加載Loading組件示例

    React Native開發(fā)封裝Toast與加載Loading組件示例

    這篇文章主要介紹了React Native開發(fā)封裝Toast與加載Loading組件,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-09-09
  • React tsx生成隨機(jī)驗(yàn)證碼

    React tsx生成隨機(jī)驗(yàn)證碼

    這篇文章主要為大家詳細(xì)介紹了React tsx生成隨機(jī)驗(yàn)證碼,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-04-04
  • React-Native TextInput組件詳解及實(shí)例代碼

    React-Native TextInput組件詳解及實(shí)例代碼

    這篇文章主要介紹了React-Native TextInput組件詳解及實(shí)例代碼的相關(guān)資料,需要的朋友可以參考下
    2016-10-10
  • react axios配置代理(proxy),如何解決本地開發(fā)時(shí)的跨域問題

    react axios配置代理(proxy),如何解決本地開發(fā)時(shí)的跨域問題

    這篇文章主要介紹了react axios配置代理(proxy),如何解決本地開發(fā)時(shí)的跨域問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • react native 獲取地理位置的方法示例

    react native 獲取地理位置的方法示例

    這篇文章主要介紹了react native 獲取地理位置的方法示例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-08-08
  • React使用Mobx6.x共享狀態(tài)問題

    React使用Mobx6.x共享狀態(tài)問題

    這篇文章主要介紹了React使用Mobx6.x共享狀態(tài)問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-10-10

最新評(píng)論

庆安县| 江山市| 富裕县| 富锦市| 孙吴县| 滕州市| 福鼎市| 潢川县| 东辽县| 长宁区| 柳林县| 大宁县| 新疆| 虎林市| 灵宝市| 青川县| 渝北区| 迁西县| 赤水市| 沅江市| 海林市| 安龙县| 鄱阳县| 馆陶县| 合作市| 绥宁县| 台北县| 枝江市| 庐江县| 开原市| 保山市| 武汉市| 宜兰县| 武安市| 湖州市| 丁青县| 肥东县| 克拉玛依市| 西宁市| 彩票| 东明县|