mongodb與mysql的應用場景?
很多人並不能完全的區分知識和能力這兩個概念。簡單說,王語鄢有這樣那樣的知識,但並沒有那個知識相應的能力。慕容復有這樣那樣的能力,但知識就一般了。
你現在只是具備使用react的知識,能力方面可能還需要一定的積累,有成長的空間。全站需要一定的架構和工程能力,考慮各方面的健壯型,擴展型,維護型,經驗能力方面需要積累。
如何解決這個問題呢,如果以前有成熟的架構經驗,組織應該不難,建議參考先有成熟案例後在動手。
另外,框架是應景的產物,技術是生產力進化的產物,兩個要平衡。技術只是工具,需求才是價值的體現。就是不要用技術去套業務,而是根據業務選合適的技術。
個人建議,僅供參考。因為你做的只是模仿,而並不理解。所以你要讓自己理解。不只是代碼看上去是什麼「樣子」。絕大多數人也就是學個「樣子」,在技術能力里最「不濟」的檔次。
代碼的結構,遵循什麼設計,哪些部分,為什麼是這樣,有什麼好處壞處,更重要的,具體的問題是如何映射到框架的概念的,框架的概念又是如何映射到代碼的,代碼是如何組織起來的。
你不能只是會「實現」。
這就像別人送你一個iPod不會讓你立即理解iPod的結構一樣,你現在只是看到了iPod的用途,而不是它的設計者。
只有當你會用技術來設計程序,解決問題的時候,你才是懂技術的。你需要儘快渡過「模仿」的階段。
學習框架主要要學習原理和內部的思想,了解為什麼要有這款框架,這款框架究竟解決了什麼痛點問題。
而且,學習這些東西還要了解很多與這框架相關的生態系統才能更好的應用。
具體到學習方法,就是多看項目,做好筆記,多寫項目。至於API什麼的僅僅是皮毛而已,知道在哪裡,怎樣去查就好。
你有沒有經歷過單詞和例句都會背了但還是不會張口說自己想說的話的經歷?
我覺得這問題沒那麼誇張,到不了什麼「思維」的高度。這就是從理論向實踐轉化的一個過程,任何人上手新東西都會有這麼個過程,悟性高低經驗多少時間長短問題。
我這兩天也在上手 React,我太了解題主現在這種狀態了。其實說白了就是不知道「怎麼開始」。現在讓你說 React 的設計思想,組件化這些我相信你都說得出來,DEMO 也寫得出來,可是讓你寫一個完整的應用,你就不知道從哪寫起,對吧?
其實解決這個問題很簡單,先做一個具有最小功能的應用,然後逐步擴展出去。
舉個例子,我最近在做一個全棧的項目,功能是很傳統的內容管理類的。那麼我需要的最小功能的應用就是,服務端能響應最基本的訪問請求,能連接到資料庫,能返回一個 Hello World 頁面。只要能返回 Hello Word,剩下的工作無非就是寫更多頁面而已。
服務端很簡單,Express 裝好基本就 OK 了,接上資料庫也就是一兩行代碼,卡住我的是怎麼把服務端和 React 連接起來。我就在網上找教程看,一定要是那種講怎麼建立一個最小服務的教程,而且教程里用到的依賴就是你準備用的。
記住,這個時候你需要的是怎麼從0開始建立一個最小應用的教程,不是講 React 或者 Node.js 怎麼用的教程。你需要一個 Step by Step,學會走出第一步,然後你自己就能走了。
我是在找到這篇教程之後才跨過這道坎的:http://jmfurlott.com/tutorial-setting-up-a-simple-isomorphic-react-app/
不是說其他教程不好,而是只有這篇教程從創建文件夾開始講建立一個最小應用,而且使用的工具都是我準備用的。唯一美中不足的是 react-router 剛剛發布1.0.0,這部分內容過時了,需要自己改。
做好了最小應用,要盡量搞清楚每一句代碼,充分理解它的運行模式,剩下的工作就是不斷擴充,自己往前走就可以了。
說句直話,得罪之處敬請見諒。可能說明你之前在框架方面想的少,做的少,只知其然不考慮其所以然,所以新框架比較難以適應。以前在別人的博客里看到過一句話(大意):工程上,從頭造輪子無疑是很糟糕的選擇,但是如果你想提高,自己去造個輪子卻是必需的。這是因為只有自己去造了,才會遇到平時用的時修想像不到的問題,然後再去看現成的輪子,就會自然而然地注意到許多原本忽視的細節,理解別人這樣做的道理是什麼,優雅在哪裡,那麼學習起來也就要快的多。框架的學習也大體類似。
從你的描述上看,應該不是學框架問題,而是思維模式問題。
你把框架的API學會了,但是這個框架的思維模式並沒有學會。
首先是面向對象的思維,然後是組件化思維,再然後是flux思維,從這三個角度入手。
面向對象思維比較基礎,包括設計模式,和react框架沒有直接關係,但是很重要,這裡不多說。
組件化思維:樓主想要解決什麼問題,比如說要生成一個列表,先想想怎麼用react做一個列表組件,怎樣渲染,到這一步應該和案例差別不大了,組件做出來了,就完成一半了。
然後是flux,你可以以把dispatcher看做一種特殊的事件匯流排:store註冊到dispatcher,action就是一個事件,只有dispatcher才可以操縱store的狀態變化,只有store變化才刷新view,只有action才能觸發變化,沒有其他途徑。這種結構,就是flux大家都是摸著石頭過河的,吃力是正常的。有時間的情況下,多犯幾次錯誤,自然就知道什麼好什麼不好了。沒時間的情況下,只能多看看blog或者會議視頻,看看別人是怎麼用的。
不管白貓黑貓,能又快又好的實現功能的做法就是好貓。
你也許太在意一定要根據什麼流行原則,事實上這些流行的原則每半年都變一次。最基本的代碼要模塊化,測試全,保證可維護和可讀性。React的話最核心的只有組件思維和one way data flow / flux。其他的都是偏外圍的概念了。
突然想起來今天有個人學vue。問我的第一件事情是。。。怎麼在vue框架下寫window.onload 然後寫代碼。。。。
其實很多人的公司還是前後不分離的。。能做的事只有寫html 和 js 的特效等。。
所以一旦用上spa 的理念完全不知道怎麼轉變
就是把 操作DOM的思維轉化為操作Data
剛好最近在嘗試 iOS,想了一些關於前端(這裡的前端是指大前端,即所有和界面有關的工作)學習的看法。
前端學習其實包括三個主要的方面,基本元素如何表示與組合、元素樣式如何設置以及邏輯代碼如何同元素與樣式互動和管理。
以 iOS 為例,window、各種類型的 view 乃至 storyboard,是基本的元素,如何使用這些基本元素是第一課。入門的時候有 interface build,所以基本沒有代碼。然後是元素樣式,包括普通樣式,然後還要理解 constrain樣式。到此為止基本都還沒有代碼的關係,用 IB 基本夠了。之後就是代碼了,要知道如何獲取一個元素、如何創建一個元素,如何向元素填充數據,如何變換樣式。繼續深入的話,就是各個基本元素提供哪些可供操作的 api,元素的狀態如何管理,生命周期交互動作如何介入等等。
不同平台在實際工作中會有很大差異,但是去提煉的話,差不多都是這些東西。html 是界面元素,dom 提供了元素 api 和生命周期的規範,css是樣式,用 js 來做邏輯和界面互動。
不同的前端框架,則是在原生的基礎上,對基本元素、邏輯互動等等內容做了一次再組織,而學習框架的過程,則是學習新的界面組織、邏輯組織的方式。比如組件化、比如雙向綁定。
所以,學習的時候不要只是照著 demo 寫代碼,跑起來了,嗯,開心。而是要去理解框架如何做這些事的。
個人觀點,共勉。
主要是缺心法
入門任何一個新東西,都是困難的,學好了js、css、html不代表了解extjs、jquery、react、angular、nodejs這些玩意,從前端來講,從語言過渡到框架也好,庫也好,總有一個適應過程,這個適應過程也是扒層皮的過程,有過一次的見識,或者說深入了解,以後的道路會輕鬆很多,當初學完js我就啃extjs,那叫一個哭,堅持下來就會有收貨,如果你說第一遍困難,那就第二遍,第二遍困難,就第三遍,知道你滿意為止,反正目前這些前端的東東,都是有很大的共通性
直接上解法:
1. 快找個項目,找個好玩的點子,用你所學的東西實現一下吧!你的app要屌炸天!
2. 把上面這句忘了。先做下面這個事情...
3. 花上一天時間,搜一篇好的tutorial。然後把你所學的,比如react, 充分利用而做個demo app.
4. 現在回去第1步。是不是突然發現好多新的工具要學呀?想把一個好的點子做出來,是不是要重複地去做1,2,3,4呀?只不過每次搜索學習的工具不同罷了,每想做個feature,就多幾個新工具要用進你期初鑽研的Framework裡面。
就這樣,反反覆復1234。
其實不論什麼framework,單個的學,練,理解,都是沒啥用。學一點基本,趕緊從1,2,3,4開始搞項目,擴展前端的知識面,到時候可能學到的是十八般武藝,而你精通一門react。
這,才是你成為大神的第一步 : )可能因為react的設計思路並不適合你目前的狀況,框架那麼多,找一個適合自己的學。又不是說離了前端框架就做不了項目了,我感覺很多個人項目用前端框架完全是為了用而用,殺雞用牛刀。
水平和高度不夠,如果你看一個框架,迅速要知道它的設計理念和要解決的問題,有沒有類似的框架?
然後才是細節上,比如它的工作原理,如何擴展,如何部署等,這些初期你會比較吃力,等水平和高度夠了,則一目了然,急不來的。
什麼工具框架之類的,只算是外力,苦練內功才是應該做的,要達到一種境界,我用這個框架不是我實現不了,而是我完全了解其原理,甚至能夠去完善它,只是沒有精力,不願意從新搞一套罷了。
架構跟框架是兩回事,你鎚子耍的飛起並不意味著你就會造房子。而且react也並不能算個框架,只有一個view層的話不結合一些其他工具的話是很難做出東西的,如果是新手還是多做一些實際的項目,多看一下js的基礎知識吧,到時候框架只要了解api及運用技巧自然而然就會知道怎麼使用了,當然前提是你的實際項目不要太坑,太老的項目確實很難應用上像react這種需要編譯的前端框架。
如果一下子不能理解的話,多寫寫就好了,可以試著寫稍微大一點的項目感受一下
你無從下手可能需要的是一個Starter Kit,正好幫你解決架構經驗和工程能力上的不足。有了基礎的這些東西,就只需要在實際項目中積累React的經驗。React Starter Kit — a skeleton of an "isomorphic" web application / SPA built with React.js, Express, Flux, ES6+, JSX, Babel, PostCSS, Webpack, BrowserSync... http://www.reactstarterkit.com
推薦閱讀:
※react許可證的問題是否意味著要轉技術棧了?
※vue-router無法實現按需載入動態組件,有什麼替代方案可以解決這一需求呢?
※在什麼場景下,選擇 AngularJS 比其他前端框架更好?
※關於redux在項目運用中的一些問題?
※Angular2 相比 React 技術棧有什麼具體的優勢?