亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

javascript - vue 如何判斷v-for裡的某個(gè)值發(fā)送變化
過(guò)去多啦不再A夢(mèng)
過(guò)去多啦不再A夢(mèng) 2017-06-30 09:58:49
0
2
1019

先貼程式碼,直接貼過(guò)去就能看效果

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title></title>
    <script src="http://cdn.bootcss.com/vue/2.3.4/vue.min.js"></script>
    <style>
        * {
            margin: 0;
            padding: 0;
        }
        .bg {
            width: 300px;
            height: 400px;
            position: absolute;
            top: 50px;
            left: 100px;
            border: 1px solid #ccc;
        }

        .bg ul li {
            margin-bottom: 50px;
        }
    </style>
</head>
<body>
<p>
<p class="bg">
    <ul>
        <li v-for="item of list" :key="item.id">
            <h2>{{ item.name }}</h2>
            <span v-show="false">我出現(xiàn)了</span>
        </li>
    </ul>
</p>
<script>
const app = new Vue({
    el: '.bg',
    data () {
        return {
            list: [
                {
                    id: 0,
                    name: '李四',
                    number: 0
                },
                {
                    id: 1,
                    name: '張三',
                    number: 0
                },
                {
                    id: 2,
                    name: '王五',
                    number: 0
                },
            ]
        }
    }
})
</script>
</p>
</body>
</html>

我想監(jiān)聽(tīng)list 下面的number 是否有變化,或是大於現(xiàn)在的number。
如果number改變了, h2下面的span 就會(huì)出現(xiàn)。然後 1秒消失。

但是沒(méi)想到怎麼做。 (注意: 哪一個(gè)number變化就出現(xiàn)哪個(gè)span。不是所有都出現(xiàn)。)

過(guò)去多啦不再A夢(mèng)
過(guò)去多啦不再A夢(mèng)

全部回覆(2)
小葫蘆

不錯(cuò),應(yīng)該使用 watch

應(yīng)該分拆使用組建,我想原汁原味的Vue寫(xiě)法應(yīng)該如此:

Vue.component('list-view', {
  props: ['item'],
  data() {
    return {
      is_show: false
    }
  },
  watch: {
    'item.number': function(newN, oldN) {
      this.is_show = newN > oldN;
    },
    is_show: function(newStatus) {
      if (newStatus) {
        setTimeout(() => this.is_show = false, 1000);
      }
    }
  },
  template: `
      <li>
        <h2 v-text="item.name"></h2>
      <span v-show="is_show">我出現(xiàn)了</span>
    </li>`
});

const app = new Vue({
  el: '.bg',
  data() {
    return {
      list: [{
        id: 0,
        name: '李四',
        number: 0
      }, {
        id: 1,
        name: '張三',
        number: 0
      }, {
        id: 2,
        name: '王五',
        number: 0
      }, ]
    }
  },
  mounted() {
    //測(cè)試用的
    setTimeout(() => {
      this.$set(this.list[0], 'number', 1);
    }, 1000);
    setTimeout(() => {
      this.$set(this.list[1], 'number', 1);
    }, 2000);
    setTimeout(() => {
      this.$set(this.list[2], 'number', 1);
    }, 3000);
  }
});
<p>
  <p class="bg">
    <ul>
      <list-view v-for="item in list" :item="item" :key="item.id">
      </list-view>
    </ul>
  </p>
</p>

可以到 https://jsfiddle.net/1rb586dr/2/ 體驗(yàn)

曾經(jīng)蠟筆沒(méi)有小新

你可以使用watch()屬性

api文檔:vue-vatch

希望可以幫到你,如果還不明白再@我

最新下載
更多>
網(wǎng)站特效
網(wǎng)站源碼
網(wǎng)站素材
前端模板