鍍金池/ 問(wèn)答/HTML/ 遇到一個(gè)vue的問(wèn)題,不知道是什么原因,有誰(shuí)能解答下?

遇到一個(gè)vue的問(wèn)題,不知道是什么原因,有誰(shuí)能解答下?

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <script src="https://cdn.jsdelivr.net/npm/vue"></script>
    <style>
        .demo{
            display: flex;
        }
        li{
            width: 30px;
            height: 30px;
            border: 1px solid #ddd;
            list-style: none;
        }
        .active{
            background: #f60;
        }
    </style>
</head>
<body>
    <div class="demo">
        <ul><li v-for="(col,x) in cols" @click="alert(x)" :class="position[0]===x?'active':''"></li></ul> 
        <!--<ul><li v-for="(col,x) in cols" @click="alert(x)" :class="positionX===x?'active':''"></li></ul>-->
        <button @click="inc()">+1</button>
    </div>
    
    <script>
        new Vue({
            el:'.demo',
            data(){
                return{
                    cols:[1,2,3,4,5,6,7,8,9,10],
                    position:[0],
                    positionX:0
                }
            },
            methods:{
                inc(){
                    this.position[0]++
                    this.positionX++
                },
                alert(x){
                    console.log(this.position[0]===x)//第一段ul中l(wèi)i樣式不動(dòng),但當(dāng)點(diǎn)擊下一個(gè)li時(shí),輸出是true
                    console.log(this.positionX===x)//第二段ul中l(wèi)i樣式動(dòng),點(diǎn)擊輸出是true
                }
            }
        })
    </script>
</body>
</html>

圖片描述

這里寫(xiě)了兩段代碼,按+1按鈕的時(shí)候橘色應(yīng)該會(huì)往下跑。
但是實(shí)際上只有被注釋的那段代碼能運(yùn)行,這是什么問(wèn)題導(dǎo)致的?

回答
編輯回答
替身

inc()方法中修改如下:
this.$set(this.position, 0, (this.position[0] + 1))

原因是數(shù)組未更新導(dǎo)致,請(qǐng)查看vue相關(guān)文檔:https://cn.vuejs.org/v2/guide...

2017年8月28日 01:17