2016-10-05 57 views
-1

我在學習React,並想知道是否有方法在不使用React的情況下重新呈現狀態更改。這在普通的JavaScript中可能嗎?JavaScript中無狀態的狀態

+3

我建議閱讀React使用的代碼,如果您想知道代碼在React中的工作方式。 –

+0

[redux](https://github.com/reactjs/redux)或[mobx](https://github.com/mobxjs/mobx)?他們都是框架無關的 –

+1

你必須知道你真正想要和需要什麼。真的有必要重新發明輪子?任何框架或庫可以解決我的問題? –

回答

0

讓我們假設我們的整個應用程序是這樣的:

<input id="myState" /> 
<h2 id="myView"></h2> 

我們有某種我們稱之爲狀態值,我們有某種價值,我們稱之爲視圖。現在我們想要的是當我們更新我們的狀態時,我們想更新我們的視圖。是的,如果沒有React/Redux /等,這絕對是可能的。

window.onload = function(){ 
    var state = document.getElementById('myState'), 
      view = document.getElementById('myView') 
    state.addEventListener('keyup',function(e){ 
     view.innerText = e.target.value 
    }) 
} 

每次我們應用程序的「狀態」發生變化時,我們都會重置「視圖」。

經過這個虛擬問題,你會遇到很多問題,這些問題是React/Angular/Ember/Backbone /等都試圖幫助解決的問題。

它可以在香草JS?是的,因爲其他人已經在香草JS中做過。

+0

我在昨晚的聚會上討論過這個問題,他們對你的答案也有類似的答案。 React/Redux使得它更容易,但它是所有JavaScript的任何一種方式,所以技術上你可以寫你自己的迷你框架來剝離你想要的功能,但只要它不太臃腫,你應該使用這樣做的框架。 –

+0

我想說這取決於你的UI有多瘋狂。如果它只是你想要過濾/去除的〜100個元素的列表,那麼在香草JS中過濾和重畫就很簡單了。如果你想要一個完整的SPA,它會變得更有趣,但最終你會重新建立圖書館。給你所得到的。 –