[Riot.js] props와 state

6315 단어 riot.jspropsState
다음은 Riot.jspropsstate를 총괄한다.
먼저 코드와 결과부터 시작합니다.
* 환경 구축 정보여기.
index.html

<!doctype html>

<html>
  <head>
    <title>Riot practice</title>
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
  </head>

  <body>

    <app></app>

    <script src="app.riot" type="riot"></script>
    <script src="https://cdn.jsdelivr.net/npm/riot@4/riot+compiler.min.js"></script>

    <script>
      riot.compile().then(() => {
        riot.mount('app', {
          title: 'propsのタイトル',
        })
      })
    </script>
  </body>
</html>
app.riot
<app>
  <h3>{ props.title }</h3>

  <h3>{ state.title }</h3>

  <style>
     h3 { color: green }
  </style>

  <script>
    export default {
      onMounted() {
        console.log('マウントされました。')
        // this.state.title = 'stateのタイトル' DOMは更新されない
        this.update({
          title: 'stateのタイトル'
        })
      }
    }
  </script>
</app>
결실

props


구성 요소의 초기 속성을 수신합니다.
  • immutable 데이터(변하지 않는 데이터)
  • passed in from parent
  • can't change it(변경 불가)
  • can be defaulted &validated (기본값 설정 및 검증 가능)
  • state

    this.props 속성이 다운되면 this.state 대상은 완전히 바뀌고 수동 또는 this.update() 방법으로 업데이트됩니다.
  • mutable 데이터(가변 데이터)
  • maintained by component(구성 요소 유지)
  • can change it(변경 가능)
  • should be consiered prive(사적인 것 같아)
  • 계수 응용 프로그램 만들기


    나는 버튼만 누르면 1이 추가되는 간단한 프로그램을 만들었다.
    1 증가하면 상태가 바뀐다.
    따라서 사용state.
    app.riot
    
    <app>
      <p>カウント:{ state.count }</p>
      <button onclick={ plusCount }>+1</button>
    
      <script>
        export default {
          state: {
            count: 0
          },
          plusCount() {
            this.update({
              //count: this.state.count++  なぜか増えない
              count: this.state.count += 1
            })
          }
        }
      </script>
    </app>
    
    state에서 값을 유지하고this.update()에서 1을 증가시켰다.
    보태다
  • this.state.count++하지만 값이 증가하지 않아...
  • plusCount()내방치console.log(this)의 결과↓

  • 좋은 웹페이지 즐겨찾기