『壹』 為什麼ReactJS在中國一點沒有起色
1.安裝node,因為ts的編譯器是js/ts寫的;安裝node後同時獲得npm命令,這是nodejs世界裡的包管理器(也可以看作node的app商店);2.安裝vs2015或者vscode,當然這不是必須的,但是這里強烈推薦寫ts的工具,vs第一,vsc第二;3.vs自帶了TypeScript(vs2012+,vs2015update1自帶了ts1.7),最新版本的typescriptforvs去官網下載即可,或者如果不依賴vs(比如mac環境),可以用命令行裝ts編譯器npmi-gtypescript@next4.安裝了ts後,就會有2個命令可用:tsc和tsd,tsc用來編譯TypeScript代碼,tsd用來下載第三方js類庫的ts定義文件(或者叫頭文件),熟練使用tsd,工作效率提升,因為減少了80%查文檔的時間,所以寫ts可以說是jser打通了任督二脈,上手任何新的開發環境都很快;5.命令行下載react的ts頭文件,tsdinstallreact-global--save注意上面之所以寫react-global而不是react,因為我們接下來使用比較原始的寫法,直接把React當作全局對象使用,而不作為es6模塊(必須用import引入),不需要Babel編譯也不需要webpack打包;上面執行的tsd命令下載了ReactJS類庫的頭文件,下面用tsc命令創建一個ts項目配置文件tsc--init命令創建了tsconfig.json配置文件,打開該文件增加"jsx":"react",就是自動把tsx變成最終的js,而不是jsx把"outDir":"built",這行去掉,這樣編譯的文件就會在當前目錄輸出"target":"es5",這里es3改成es5,"watch":true是否監聽文件修改如果你用的是vs,這行不重要6.下載reactjs文件,如果沒有安裝bower命令,可以手動去官網下載react類庫bowerinstall--savereact7.以上環境配置好了,開始寫代碼:創建一個demo.tsx文件(注意這里是tsx,不是ts也不是jsx)創建一個demo.html,添加文件的引用8.demo.tsx寫代碼classMyClassextendsReact.Component{render(){returnhello{this.props.name};}}document.addEventListener('DOMContentLoaded',function(){ReactDOM.render(,document.body);});9.如果保存了demo.tsx後,沒有在目錄下發現自動編譯了demo.js,那麼可能是vs沒配置好,如果你沒有裝vs或者vsc,沒關系,在當前文件夾下命令行運行tsctsc命令會自動根據tsconfig.json裡面配置的情況,自動幫你把代碼編譯成js,這是編譯後的js文件10.打開demo.html可以看到效果了;11.至於題主說怎麼學習,其實跟JS完全沒兩樣,上面demo.tsx的代碼,跟react官網的es6寫法一模一樣多了這兩個prop和states類型約束,僅此而已;11.至於題主說怎麼學習,其實跟JS完全沒兩樣,上面demo.tsx的代碼,跟react官網的es6寫法一模一樣多了這兩個prop和states類型約束,僅此而已;12.下班,有空再寫;------時間分割------13、繼續寫,對1-12進行潤色,轉入傳教模式;以上的代碼,工廠方法在創建子類的同時,做了一些初始化的動作,這與單純的原型繼承不同,所以在使用class方式進行子類繼承,這樣的寫法是無效的;classMyViewextendsReact.Component{render(){returnhello{this.state.name};//會拋異常,因為state是null}//不起作用的getInitialState:(){return{name:'',age:20};}}需要改成如下方式,下面是官網給出的方案(這里TypeScript和ES6情況是一樣的)classMyViewextendsReact.Component{constructor(props,context){super(props,context);this.state={name:'',};}render(){returnhello{this.state.name};}}16、當組件化遇到強類型:從前寫JS組件,一般復用性比較差,基本寫完就仍,原因如下:1)暴露了太多的Dom結構以及別的實現細節;2)命名挫,缺乏可記憶性,本身編程中變數和方法的命名對於碼農來說就是天坑;3)JS天生缺乏私有和公共成員的約束,不加註釋根本不知道怎麼使用該類庫/組件;React解決了把dom標簽暴露出去的問題,TS則解決了語言層面的問題,並提供了強大的重構能力,你根本不需要記住組件的API,因為工具會列出來;
『貳』 react的index.html能引進js嗎
<script src="react.js"></script>
<script src="react-dom.js"></script>
<script src="browser.min.js"></script>
react.js 是 React 的核心庫
react-dom.js 是提供與 DOM 相關的功能,你以後創建的組件都是用它創建
『叄』 react裡面怎麼讓自己寫的js文件生效
能具體一點嗎?
react一般情況下你需要去把一個js輸出(export)然後再用另一個文件去調用(require)
test.js
mole.exports=React.createClass({
displayName:"test",
...
})
vartest=require("test.js");
『肆』 這么多人吹捧ReactJS,但是真的好嗎
最近用react做了一個聊天類型的應用,說一下大概的看法吧:
言簡意賅的說,react+rex+immutable+其它輔助lib的方案,在多狀態、多交互的產品中,還是有很大的應用場景,一圖勝千言:
以下是根據自己體驗和社區經驗,得出的一些想法:
mvvm 是架構層面的模式,函數式是編程上的範式,兩者不是對立面,react+flux 是函數式,mvvm 里一樣可以用函數式,恰恰在不少 mvvm 的實現框架中,FPR 是很重要的實現雙綁的方案:比如 ReactiveCocoa 用到的 RAC。
是否有實際的案例去證明,應用規模大了後,mvvm 就不能用了?非要你的 flux? flux 才出現多久,以前用 mvvm 實現的大規模應用都是假的?
react 支持者都是直接根據官方文檔照讀:雙綁很混亂,flux 才能解決一切,事實是,你喜歡單向數據流,mvvm 一樣支持啊,不要雙綁就行了呀。
react 我沒有實際用過,不發表負面評論,但讓我覺得比較亮的是透明的virtual dom和同構方案。
性能這塊,ng 未必會比 react 慢,但不好的地方在於,ng 需要知道 track by 這些黑魔法才能做到優化,而很多開發者並不知道這點,在這上面,react 是領先的。
virtual dom 的引入也讓 react 脫離了視圖的具體實現,可以很方便的切換底層平台,這是一個大優勢,而 ng2的架構也會做到這點。
react是 view 層,你要願意,mvvm 里的 v 同樣可以用 react 來做,不要隨便把 mvvm 和 react 等價,認為只有 react 能用 flux,認為 react 只能用於 flux。
用還是不用?客觀:因地制宜主觀:因人而異其實:你高興就好
『伍』 reactjs 能單獨使用嗎! 不使用node,
可以直接在瀏覽器中使用,需要先載入babel釋義器。
參看:https://facebook.github.io/react/docs/getting-started.html
『陸』 誰能告訴我react.js到底好在哪裡 到底是幹嘛用的嗎
React 僅僅是 VIEW 層。
React 通常和其他的 JavaScript 框架同時被提及,但是說「React 對比 Angular」卻講不通,因為它們之間是不可比較的。Angular 是一個完整的框架(包括一個 view 層),React 卻並不是。這也是 React 很難於理解的原因,它雖然抽離自一個具備完整框架的生態系統中,但僅僅是一個 view 層。
React 提供了模板語法以及一些函數鉤子用於基本的 HTML 渲染。這就是 React 全部的輸出——HTML。你把 HTML / JavaScript 合到一起,被稱為「組件」,允許把它們自己內部的狀態存到內存中(比如在一個選項卡中哪個被選中),不過最後你只是吐出 HTML。
不懂可以私信問我詳細
『柒』 開發reactjs使用什麼ide
我看很多人用 vs code
『捌』 為什麼React.js這么火
Angular和React不屬於同一類的東西,Angular是一個框架,而React更多是負責UI視圖部分,大家普遍認為React是MVC中的V。
那麼到底為什麼React.js一下子就火起來了呢?個人覺得可能主要是因為以下幾個因素所導致的:
單向數據綁定
就在滿世界誇贊雙向Data Binding好的時候,React說我默認只支持單向數據流,因為在馮諾依曼體系中,數據就是單向流動的。這么一來,小夥伴們都震驚了,紛紛去Google雙向和單向數據綁定的區別。單向綁定確實相比之下要更加輕,但事實上呢,雙向綁定的需求也確實是存在的,比如:用戶填寫表單的時候,填寫的值就需要更新到Model中,所以,React其實也有通過addon React Link來提供這個功能。只是他默認是不支持雙向數據綁定的。
虛擬DOM
關於虛擬DOM的好壞,業界眾說紛紜,這里不做評價。但單從這個概念本身起碼讓大家覺得是個新東西。所謂虛擬DOM就是說,在React中如下這段代碼:
1
React.render(
2
<div className="commentBox">
3
Hello, world! I am a CommentBox.
4
</div>
5
);
這里的div其實和DOM中的div完全是兩碼事兒了,只不過React提供了和DOM類似的Tag和API,事實上React會通過他自己的邏輯去轉化為真正的DOM。所以,把這種重做虛擬DOM。
那麼這樣做有什麼好處呢?最明顯的一點好處就是React所謂的dom diff,能夠實現delta級別的dom更新。當有數據變動導致DOM變動時,React不是全局刷新,而是通過它內部的dom diff演算法計算出不同點,然後以最小粒度進行更新。這也是React號稱性能好的原因。
其次,還有一點非常好的地方就在於,有了虛擬DOM就可以讓UI脫離設備,換句話說,只要有對應的轉化關系,如:虛擬DOM -> 瀏覽器DOM,就能進行渲染。React Native就是一個很好的例子,它把虛擬DOM轉化為Native UI組件,這樣理論上就解決了DOM在移動端性能的問題。當然,缺點也是有的,比如:就無法和已有的原生DOM組件進行兼容。
JSX
JSX其實本質上是一種新的語言,只不過它設計成JavaScript一種擴展,所以,其語法絕大部分都和JavaScript一樣。而同時它搭配一個JSX Transform的工具可以將JSX編譯為原生的JavaScript。
那麼這樣做好處是什麼呢?當然了,首要任務就是讓你寫代碼方便點,否則想想每次都要React.createElement也是醉了!
其次呢,另一個好處就是它可以讓你書寫ES6之類的語法,就和CoffeeScript是一個道理,最終它會翻譯到瀏覽器兼容的語法。
『玖』 ReactJS 真的好嗎
這個問題是個讓人難以抉擇的問題
ReactJS好不好呢?
1 如果你是個大公司 或者是自己完全有技術 有需要造自己的輪子 那麼ReactJS可真是好啊 MVC框架還能兼容移動端
2 如果你只是個小公司 剛起步或者沒必要造自己的輪子 再或者技術沒達到 在我看來,ReactJS 可就是雞肋了,你需要培訓成本,人力成本高,搭建系統也耗時 因為需要用腦子寫的代碼太多了
但是呢 也有人很鄙視AngularJS而崇尚ReactJS
對我來說的話呢 我更喜歡AngularJS 恩 操作方便插件也多技術也比較成熟了
『拾』 有沒有公司用reactjs做的實際項目
這個問題是個讓人難以抉擇的問題ReactJS好不好呢?1如果你是個大公司或者是自己完全有技術有需要造自己的輪子那麼ReactJS可真是好啊MVC框架還能兼容移動端2如果你只是個小公司剛起步或者沒必要造自己的輪子再或者技術沒達到在我看來,ReactJS可就是雞肋了,你需要培訓成本,人力成本高,搭建系統也耗時因為需要用腦子寫的代碼太多了但是呢也有人很鄙視AngularJS而崇尚ReactJS對我來說的話呢我更喜歡AngularJS恩操作方便插件也多技術也比較成熟了