redux 學習心得

最近在學習redux  一些新的分享給大家,相互學習 

Redux基於簡化版本的Flux框架,Flux是Facebook開發的一個框架。大家想要很好的理解reduc 可以去學習一下Flux。

線上代碼

<!DOCTYPE html>
<html>
  <head>
    <title>Redux basic</title>
    <script src="https://unpkg.com/redux@latest/dist/redux.min.js"></script>
  </head>
  <body>
    <div>
      <p><span id="colorEl">Watch my color.</span>
         <button id="red">RED</button>
         <button id="green">GREEN</button>
         <button id="toggle">TOGGLE</button>
    </div>
    <script type="text/javascript">
        var initialState = {
            color: 'red'
        }

        function color(state, action) {
            if(typeof state === 'undefined') {
                return initialState
            }

            switch(action.type) {
                case 'RED' : 
                    return { color: 'red'}
                case 'GREEN' : 
                    return { color: 'green'}
                case 'TOGGLE' :
                    return state.color === 'red' ? {color:'green'} : {color:'red'}
                default :
                    return state
            }
        }

        var store = Redux.createStore(color)
        var colorEl = document.getElementById('colorEl')

        function renderValue() {
            colorEl.style.color = store.getState().color
        }

        renderValue()
        //註冊監聽器
        store.subscribe(renderValue)

        document.getElementById('red').addEventListener('click', function(){
            store.dispatch({
                type: 'RED'
            })
        })

        document.getElementById('green').addEventListener('click', function(){
            store.dispatch({
                type: 'GREEN'
            })
        })

        document.getElementById('toggle').addEventListener ('click', function(){
          store.dispatch({
            type: 'TOGGLE'
          })
        })

    </script>>
  </body>
</html>

 

我們先看代碼是怎麼執行的  先不看具體含義  只看執行順序  

1 首相創建一個 store的對象  先不管他是幹嘛用的

2  click 點擊事件的方法  調用了store.dispatch()的方法了

3  dispatch 的方法執行表示 調用了color的方法。把state裏面color的值改變了

4  這時監聽state值變化的方法執行了 ,也就是  store.subscribe(renderValue) 的方法執行了

5 然後 調用了 renderValue()的方面   跟新了頁面

https://blog.csdn.net/a153375250/article/details/53374081  結合這篇文章在理解一下  

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章