我的 React Native 技能樹(shù)點(diǎn)亮計(jì)劃 の React Native 開(kāi)發(fā) IDE 選型和配置

作者簡(jiǎn)介:ASCE1885丛肢, 《Android 高級(jí)進(jìn)階》作者。

  • 微信公眾號(hào):asce1885
  • 小密圈:Android高級(jí)進(jìn)階剿干,詳情見(jiàn)這篇文章蜂怎。
  • Github簡(jiǎn)書(shū)置尔,微博杠步,CSDN 知乎
    本文首發(fā)于 InfoQ 移動(dòng)技術(shù)公眾號(hào):移動(dòng)開(kāi)發(fā)前線
    由于潛在的商業(yè)目的,未經(jīng)許可不開(kāi)放全文轉(zhuǎn)載許可,謝謝幽歼!
gold.png-2324.9kB
gold.png-2324.9kB

React Native 發(fā)布一年多了朵锣,有不少公司已經(jīng)在線上產(chǎn)品中或小范圍試水,或大范圍應(yīng)用甸私,很多公司或開(kāi)發(fā)者都在為 React Native 的生態(tài)系統(tǒng)作出自己的貢獻(xiàn)诚些。React Native 的開(kāi)發(fā)基本上是 Javascript + 系統(tǒng)原生開(kāi)發(fā)語(yǔ)言(Java,Objective-C皇型,Swift)诬烹,原生語(yǔ)言的開(kāi)發(fā)所用的 IDE 沒(méi)有多余的選擇,Android 平臺(tái)只能使用 Android Studio(不要告訴我你還在使用 Eclipse)弃鸦,iOS 平臺(tái)只能使用 XCode绞吁,而開(kāi)發(fā) Javascript 的 IDE 選擇就多了,從 FaceBook 官方推薦的 Atom+Nuclide唬格,到與 Android Studio 同系列的 Javascript IDE WebStorm掀泳,再到功能強(qiáng)大的 Sublime Text 3,以及微軟推出的 Visual Studio Code 和 decosoftware 專門為 React Native 打造的開(kāi)源 IDE Deco西轩,甚至 Vim员舵,NodePad++ 等等,都可以用來(lái)開(kāi)發(fā) React Native藕畔,唯一的前提能夠支持識(shí)別 Javascript 語(yǔ)法马僻,識(shí)別 JSX 和 React Native API 的智能提醒。接下來(lái)我們就來(lái)介紹最常用的五款 IDE 的配置和選型注服。

Atom[1]+Nuclide[2]

Atom 是由 Github 打造的下一代編程開(kāi)發(fā)利器韭邓,支持 Windows、Mac OS X溶弟、Linux 三大桌面平臺(tái)女淑,免費(fèi)且開(kāi)源。Atom 支持各種編程語(yǔ)言的代碼高亮辜御,同時(shí)具備強(qiáng)大的代碼補(bǔ)全功能鸭你,能夠極大的提高編程效率,Atom 本質(zhì)上是一個(gè)文本編輯器擒权,而不是一個(gè) IDE袱巨,因此在用來(lái)開(kāi)發(fā) React Native 時(shí)需要配合 Nuclide 一起使用。

image_1al7a82ds18sk1hq91h2tipn14d71t.png-426.3kB
image_1al7a82ds18sk1hq91h2tipn14d71t.png-426.3kB

Nuclide 是 Facebook 基于 Atom 的基礎(chǔ)上開(kāi)發(fā)的一個(gè)插件 IDE碳抄,可以用來(lái)開(kāi)發(fā) React Native愉老,iOS 和 Web 應(yīng)用,目前不支持 Windows 平臺(tái)剖效,只支持 Mac OS X 和 Linux嫉入。

image_1al7avfd1p72il9piv2qs9di2a.png-134.4kB
image_1al7avfd1p72il9piv2qs9di2a.png-134.4kB

Nuclide 內(nèi)置了對(duì) React Native 的支持焰盗,包括代碼自動(dòng)補(bǔ)全,代碼診斷等咒林,下圖是代碼補(bǔ)全的截圖:

image_1al7b2vv61gfl1a6d4f075h1fno2n.png-101.1kB
image_1al7b2vv61gfl1a6d4f075h1fno2n.png-101.1kB

Nuclide 是 Facebook 官方提供的 React Native IDE姨谷,對(duì) React Native 的支持應(yīng)該是最好的,因此映九,推薦大家首選這個(gè)梦湘,如果在你的電腦運(yùn)行起來(lái)不會(huì)卡頓的話。Nuclide 的安裝很簡(jiǎn)單件甥,在確保 Atom 安裝之后捌议,在命令行中執(zhí)行 apm install nuclide 即可。在使用 Nuclide 之前引有,建議好好看下官網(wǎng)的說(shuō)明[3]瓣颅。

WebStorm[4]

WebStorm 是著名的 JetBrains[5] 公司開(kāi)發(fā)的號(hào)稱最智能的 Javascript 集成開(kāi)發(fā)環(huán)境,可以用于復(fù)雜的客戶端應(yīng)用開(kāi)發(fā)以及基于 Node.js[6] 的服務(wù)端開(kāi)發(fā)譬正。如果你之前使用 Android Studio 開(kāi)發(fā)過(guò) Android 應(yīng)用的話宫补,你一定會(huì)覺(jué)得 WebStorm 的界面似曾相識(shí),沒(méi)錯(cuò)曾我,因?yàn)?WebStorm 和 Android Studio 都是 JetBrains 的杰作粉怕。WebStorm 支持 Windows、Mac OS X抒巢、Linux 三大桌面平臺(tái)贫贝,不過(guò)和 Android Studio 可以免費(fèi)使用不同,WebStorm 是需要付費(fèi)使用的蛉谜,只有 30 天的試用期稚晚。

image_1al2crrfmp94opl1087tic1kl9.png-266.6kB
image_1al2crrfmp94opl1087tic1kl9.png-266.6kB

由于 React Native 是基于 React 的,而 React 使用的是 JSX 語(yǔ)法型诚,因此客燕,使用 WebStorm 開(kāi)發(fā) React Native 之前,我們首先需要設(shè)置支持的 Javascript 語(yǔ)法狰贯,點(diǎn)擊 WebStorm-Preferences也搓,在打開(kāi)的對(duì)話框中選擇 Javascript language versionJSX Harmony 即可在代碼編輯器中識(shí)別 JSX,如下圖所示:

image_1al4p5lld1eevdsv1mf21g6m1oii9.png-160.5kB
image_1al4p5lld1eevdsv1mf21g6m1oii9.png-160.5kB

當(dāng)然暮现,到這一步还绘,只能使得編輯器識(shí)別 JSX 語(yǔ)法的 Javascript 代碼,不會(huì)導(dǎo)致代碼標(biāo)紅栖袋,但對(duì)于 React Native 的 API 名稱,組件名稱等并不會(huì)智能提醒和自動(dòng)補(bǔ)全抚太,因?yàn)槟壳?WebStorm 只支持 React 語(yǔ)法塘幅,還不支持 React Native 語(yǔ)法昔案。為了解決這個(gè)問(wèn)題,我們可以使用一個(gè)開(kāi)源的插件:ReactNative-LiveTemplate[7]电媳,按照 Github 上面的說(shuō)明安裝插件并重啟 WebStorm 之后生效踏揣,這時(shí)在編輯器中輸入 React Native 的組件或者 API 的首字母,會(huì)自動(dòng)聯(lián)想出相應(yīng)的組件匾乓,如下所示捞稿,方便了很多。如果在使用過(guò)程中覺(jué)得這個(gè)插件有不完善的地方拼缝,你還可以在 Github 上面提交你的 Pull Request娱局,貢獻(xiàn)自己的一份力量。

image_1al4ptcak3vt35s1p9d4a3gi5m.png-99.3kB
image_1al4ptcak3vt35s1p9d4a3gi5m.png-99.3kB

Sublime Text 3[8]

Sublime Text 3 是一款廣泛使用的代碼編輯器咧七,支持 Windows衰齐、Mac OS X、Linux 三大桌面平臺(tái)继阻,它是付費(fèi)應(yīng)用耻涛,但目前可以無(wú)限期的試用。它支持多種編程語(yǔ)言的語(yǔ)法高亮瘟檩、擁有優(yōu)秀的代碼自動(dòng)完成功能抹缕,還擁有代碼片段(Snippet
)的功能,可以將常用的代碼片段保存起來(lái)墨辛,在需要時(shí)隨時(shí)調(diào)用歉嗓,極大的提高編程效率。

image_1al7c3v7i329tmc1lo91v4b1qg34.png-65.3kB
image_1al7c3v7i329tmc1lo91v4b1qg34.png-65.3kB

Sublime Text 3 強(qiáng)大功能的支撐在于它的插件機(jī)制背蟆,通過(guò) Package Control 功能鉴分,開(kāi)發(fā)者可以安裝各種需要的插件,默認(rèn)情況下带膀,Sublime Text 3 沒(méi)有集成 Package Control志珍,我們需要自己安裝。Package Control 有命令安裝和手動(dòng)安裝兩種方式垛叨,建議優(yōu)先選擇命令安裝伦糯,可以參考官網(wǎng)安裝指南[9]。本文我們介紹命令安裝方式嗽元,在 Sublime Text 3 中通過(guò) View->Show Console 打開(kāi)命令行敛纲,執(zhí)行如下命令:

import urllib.request,os,hashlib; h = '2915d1851351e5ee549c20394736b442' + '8bc59f460fa1548d1514676163dafc88'; pf = 'Package Control.sublime-package'; ipp = sublime.installed_packages_path(); urllib.request.install_opener( urllib.request.build_opener( urllib.request.ProxyHandler()) ); by = urllib.request.urlopen( 'http://packagecontrol.io/' + pf.replace(' ', '%20')).read(); dh = hashlib.sha256(by).hexdigest(); print('Error validating download (got %s instead of %s), please try manual install' % (dh, h)) if dh != h else open(os.path.join( ipp, pf), 'wb' ).write(by)

上面的命令會(huì)創(chuàng)建安裝所需的包目錄,并下載 Package Control.sublime-package 到目錄中剂癌。安裝完成后淤翔,可以在 Preferences 菜單下找到 Package Settings 和 Package Control 兩個(gè)子菜單。

在 Sublime Text 3 中佩谷,React Native 開(kāi)發(fā)相關(guān)的插件主要有:

  • babel-sublime[10]:支持 Javascript旁壮,ES6 和 JSX 語(yǔ)法高亮
  • react-native-snippets[11]:支持 React Native 代碼片段

在 Package Control 對(duì)話框中選擇 Package Control:Install Packages 并在彈出的對(duì)話框中輸入 Babel监嗜,即可找到 babel-sublime:

image_1al738d691avg1ftf1b7ck4i1eie9.png-52.7kB
image_1al738d691avg1ftf1b7ck4i1eie9.png-52.7kB

安裝完成之后,需要啟用它抡谐,如下圖所示菜單操作即可:

image_1al74khdk1ack11aflo6stf19p2m.png-420.1kB
image_1al74khdk1ack11aflo6stf19p2m.png-420.1kB

react-native-snippets 插件同樣通過(guò) Package Control 進(jìn)行安裝裁奇,在 Install Package 對(duì)話框中搜索 react-native-snippets 安裝即可:

image_1al768abv2kf1miak917hsv0p13.png-81.4kB
image_1al768abv2kf1miak917hsv0p13.png-81.4kB

安裝完成之后,在代碼編輯器中輸入代碼片段的縮寫(xiě)麦撵,例如我們新建一個(gè)名為 UserDetail.js 的文件刽肠,在其中輸入 rncc 來(lái)創(chuàng)建一個(gè) React Native 的類,智能提醒如下所示:

image_1al799aiune9k691hha1vli16be1g.png-54.8kB
image_1al799aiune9k691hha1vli16be1g.png-54.8kB

按下 Enter 鍵免胃,插件自動(dòng)生成如下樣板代碼音五,節(jié)省了很多手動(dòng)輸入所需花費(fèi)的時(shí)間:

'use strict';

import React, { Component } from 'react';

import {
  StyleSheet,
  View,
} from 'react-native';

class UserDetail extends Component {
  render() {
    return (
      <View />
    );
  }
}

const styles = StyleSheet.create({

});

export default UserDetail;

除了 rncc,其他常見(jiàn)的代碼片段如下所示杜秸,更多內(nèi)容參見(jiàn)插件的 Github 首頁(yè)放仗。

image_1al7mdbf7r9n5uu4rg5h1dr73h.png-83.1kB
image_1al7mdbf7r9n5uu4rg5h1dr73h.png-83.1kB

Visual Studio Code[12]

Visual Studio Code 是微軟推出的一個(gè)輕量級(jí)的開(kāi)源 Web 集成開(kāi)發(fā)環(huán)境,支持超過(guò) 30 種語(yǔ)言的開(kāi)發(fā)撬碟,同時(shí)支持 Windows诞挨、Mac OS X、Linux 三大桌面平臺(tái)呢蛤。

image_1ardliff01st41t5u19op1pgif129.png-153.7kB
image_1ardliff01st41t5u19op1pgif129.png-153.7kB

對(duì)于開(kāi)發(fā) React Native 而言惶傻,微軟提供了專門的插件:vscode-react-native[13],按照官網(wǎng)的說(shuō)明進(jìn)行插件的安裝即可其障。這個(gè)插件使得開(kāi)發(fā)者可以在 VS Code 中調(diào)試 React Native 代碼银室,快速執(zhí)行 react-native 命令,以及對(duì) React Native 的 API 具備智能提醒功能励翼,如下所示:

react-features.gif-898.1kB
react-features.gif-898.1kB

Deco[14]

Deco 是不久前剛發(fā)布的一個(gè)開(kāi)源的專門為 React Native 打造的 IDE蜈敢,目前只支持 Mac OS X 平臺(tái)。它封裝了 React Native 開(kāi)發(fā)中經(jīng)常會(huì)使用到的功能汽抚,例如集成 npm install 功能抓狭,集成 iPhone 和 iPad 模擬器,新建工程時(shí)快速生成 AwesomeProject造烁,開(kāi)發(fā)者不再需要通過(guò)執(zhí)行 react-native init AwesomeProject 命令來(lái)生成了否过,關(guān)鍵是如果網(wǎng)絡(luò)不好的話,免去了漫長(zhǎng)的等待惭蟋。

image_1al4vjmbf5cb1141eqq11se8qo13.png-93.4kB
image_1al4vjmbf5cb1141eqq11se8qo13.png-93.4kB

Deco 區(qū)別于其他 IDE 最顯著的特性是支持常用控件的拖拽生成代碼和可視化編輯苗桂,這些控件既有 React Native 原生控件,也有一些知名的開(kāi)源控件告组,當(dāng)然煤伟,目前 Deco 集成的數(shù)量還比較少,如下圖所示,我們拖拽一個(gè)名為 Lightbox 的開(kāi)源控件持偏,如果是第一次使用驼卖,Deco 會(huì)執(zhí)行 npm install react-native-lightbox 命令首先下載安裝這個(gè)控件氨肌,然后在代碼編輯區(qū)自動(dòng)生成代碼鸿秆,同時(shí)在右邊的屬性編輯區(qū)中會(huì)有對(duì)應(yīng)的屬性值,修改屬性編輯區(qū)的屬性值怎囚,會(huì)實(shí)時(shí)反應(yīng)到代碼中卿叽。

image_1al6cr8411qte7uq1343eod51u9.png-242.6kB
image_1al6cr8411qte7uq1343eod51u9.png-242.6kB

更直觀的感受可以自己下載 Deco 執(zhí)行一下,或者到官網(wǎng)觀看一個(gè) 30 秒的演示視頻[14]恳守。

總結(jié)

本文介紹了目前開(kāi)發(fā) React Native 的幾款可選的主流 IDE考婴,大家可以根據(jù)自己的具體情況進(jìn)行選擇,當(dāng)然催烘,團(tuán)隊(duì)開(kāi)發(fā)中建議使用統(tǒng)一的 IDE沥阱。選擇哪一款 IDE,首先取決于你們團(tuán)隊(duì)的硬件配置以及對(duì)付費(fèi)軟件使用的態(tài)度伊群,然后才是 IDE 的功能特性考杉。

  • 如果你的團(tuán)隊(duì)都是使用 MacBook Pro 進(jìn)行開(kāi)發(fā),那么上面五款 IDE 都可以使用舰始,如果團(tuán)隊(duì)中既有 Windows 電腦崇棠,也有 Mac 電腦,那么 Atom+Nuclide 和 Deco 就使用不了了丸卷。
  • 如果你們團(tuán)隊(duì)能夠負(fù)擔(dān)起付費(fèi)應(yīng)用枕稀,那么 WebStorm 是不錯(cuò)的選擇,特別對(duì)于之前是 Android 開(kāi)發(fā)的同學(xué)來(lái)說(shuō)谜嫉,可以實(shí)現(xiàn) Android Studio 和 WebStorm 的無(wú)縫銜接萎坷。
  • 如果上面兩個(gè)條件都不滿足,那么就只剩下 Sublime Text 3 和 Visual Studio Code 可選了沐兰。從我們上面的介紹中可以了解到哆档,這兩款也都是非常強(qiáng)大的,如何選擇取決于你自己僧鲁。

拓展閱讀
《VS Code(1.2.0)最新亮點(diǎn)和特性全介紹》[15]
《Atom 1.8和1.9 beta發(fā)布》[16]
《React Native開(kāi)發(fā)IDE安裝及配置》[17]
《新編碼神器Atom使用紀(jì)要》[18]
《Visual Studio Code Guide[中文版]》[19]
《Sublime Text 3 搭建 React.js 開(kāi)發(fā)環(huán)境》[20]
《用Sublime 3作為React Native的開(kāi)發(fā)IDE》[21]


  1. https://atom.io/ ?

  2. https://nuclide.io/ ?

  3. https://nuclide.io/docs/quick-start/getting-started/ ?

  4. https://www.jetbrains.com/webstorm/ ?

  5. https://www.jetbrains.com/ ?

  6. https://nodejs.org/en/ ?

  7. https://github.com/virtoolswebplayer/ReactNative-LiveTemplate ?

  8. https://www.sublimetext.com/3 ?

  9. https://packagecontrol.io/installation#st3 ?

  10. https://github.com/babel/babel-sublime ?

  11. https://github.com/Shrugs/react-native-snippets ?

  12. https://www.visualstudio.com/en-us/products/code-vs.aspx ?

  13. https://github.com/Microsoft/vscode-react-native ?

  14. https://www.decosoftware.com/ ? ?

  15. http://geek.csdn.net/news/detail/80215 ?

  16. http://geek.csdn.net/news/detail/80212 ?

  17. http://www.lcode.org/%E3%80%90react-native%E5%BC%80%E5%8F%91%E3%80%91react-native%E5%BC%80%E5%8F%91ide%E5%AE%89%E8%A3%85%E5%8F%8A%E9%85%8D%E7%BD%AE/ ?

  18. http://www.jeffjade.com/2016/03/03/2016-03-02-how-to-use-atom/ ?

  19. http://i5ting.github.io/vsc/ ?

  20. https://segmentfault.com/a/1190000003698071 ?

  21. http://www.reibang.com/p/2ddfff095e90 ?

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末虐呻,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子寞秃,更是在濱河造成了極大的恐慌斟叼,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,968評(píng)論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件春寿,死亡現(xiàn)場(chǎng)離奇詭異朗涩,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)绑改,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,601評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門谢床,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)兄一,“玉大人,你說(shuō)我怎么就攤上這事识腿〕龈铮” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 153,220評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我多望,道長(zhǎng)遇绞,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 55,416評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘混驰。我一直安慰自己,他們只是感情好皂贩,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,425評(píng)論 5 374
  • 文/花漫 我一把揭開(kāi)白布栖榨。 她就那樣靜靜地躺著,像睡著了一般先紫。 火紅的嫁衣襯著肌膚如雪治泥。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 49,144評(píng)論 1 285
  • 那天遮精,我揣著相機(jī)與錄音居夹,去河邊找鬼。 笑死本冲,一個(gè)胖子當(dāng)著我的面吹牛准脂,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播檬洞,決...
    沈念sama閱讀 38,432評(píng)論 3 401
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼狸膏,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了添怔?” 一聲冷哼從身側(cè)響起湾戳,我...
    開(kāi)封第一講書(shū)人閱讀 37,088評(píng)論 0 261
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎广料,沒(méi)想到半個(gè)月后砾脑,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,586評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡艾杏,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,028評(píng)論 2 325
  • 正文 我和宋清朗相戀三年韧衣,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,137評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡畅铭,死狀恐怖氏淑,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情硕噩,我是刑警寧澤假残,帶...
    沈念sama閱讀 33,783評(píng)論 4 324
  • 正文 年R本政府宣布,位于F島的核電站榴徐,受9級(jí)特大地震影響守问,放射性物質(zhì)發(fā)生泄漏匀归。R本人自食惡果不足惜坑资,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,343評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望穆端。 院中可真熱鬧袱贮,春花似錦、人聲如沸体啰。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,333評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)荒勇。三九已至柒莉,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間沽翔,已是汗流浹背兢孝。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,559評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留仅偎,地道東北人跨蟹。 一個(gè)月前我還...
    沈念sama閱讀 45,595評(píng)論 2 355
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像橘沥,于是被迫代替她去往敵國(guó)和親窗轩。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,901評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容