Vue的學習之路三:this

<body>
    <div id="app">
      <input type="button" value="浪起來" @click="lang" />
      <input type="button" value="低調" @click="stop" />
      {{ msg }}
    </div>
    <script>
      // 注意:在VM實例中,如果想要獲取 data 上的數據,或者想要調用 methods 中的方法,必須通過 this.數據屬性名 或者 this.方法名 來進行訪問,這裏的this,就表示我們 new 出來的 VM實例對象
      var vm = new Vue({
        el: '#app',
        data: {
          msg: '猥瑣發育,別浪~~!',
          intervalId: null, //在data上定義定時器 id
        },
        methods: {
          lang() {
            if (this.intervalId != null) return;

            this.intervalId = setInterval(() => {
              // 獲取頭的第一個字符
              var start = this.msg.substring(0, 1)
              // 獲取到後面的所有字符
              var end = this.msg.substring(1)
              // 重新拼接得到新的字符串,並賦值給 this.msg
              this.msg = end + start
            }, 400)

            // 注意:VM實例,會監聽自己身上 data 中所有數據的改變,只要數據一發生變化,就會自動把最新的數據,從data上同步到頁面中去;【好處:程序猿只需要關心數據,不需要考慮如何重新渲染DOM頁面】
          },
          stop() {
            clearInterval(this.intervalId)
            // 每當清除了定時器之後,將id重新賦值爲 null
            this.intervalId = null
          }
        },
      })
      // 分析
      // 1. 給 【浪起來】 按鈕,綁定一個點擊事件 v-on @
      // 2. 在按鈕的事件處理函數中,寫相關的業務邏輯代碼,拿到 msg 字符串,然後調用字符串的 substring 來進行字符串的截取操作,把第一個字符截取出來,放到最後一個位置即可
      // 3. 爲了實現點擊一下按鈕,自動截取的功能,需要把2步驟的代碼放到定時器裏
    </script>
  </body>

通過這個小實戰複習以前的知識

  1. this:在VM實例中,如果想要獲取 data 上的數據,或者想要調用 methods 中的方法,必須通過 this.數據屬性名 或者 this.方法名 來進行訪問,這裏的this,就表示我們 new 出來的 VM實例對象
  2. VM實例,會監聽自己身上 data 中所有數據的改變,只要數據一發生變化,就會自動把最新的數據,從data上同步到頁面中去;【好處:程序猿只需要關心數據,不需要考慮如何重新渲染DOM頁面】
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章