vue使用model改變數據后導致已經push到數組中的數據也改變


 

 

 

 

 

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="../vue.js"></script>
    <style>
        table {
            border: 1px solid #ccc;
            border-spacing: 0;
        }

        th,
        td {
            width: 200px;
            border: 1px solid #ccc;
        }
    </style>
</head>

<body>
    <div id="app">

        英雄名稱<input v-model="saveDate.personName" type="text">
        英雄技能 <input v-model="saveDate.personSkil" type="text">
        <button @click="save">save</button>

        <table>
            <thead>
                <tr>
                    <th>序號</th>
                    <th>名稱</th>
                    <th>技能</th>
                    <th>opration</th>
                </tr>
            </thead>
            <tbody>
                <tr v-for="(item,index) in person">
                    <td>{{index}}</td>
                    <td>{{item.personName}}</td>
                    <td>{{item.personSkil}}</td>
                    <td> <button @click="del(index)">刪除</button> </td>
                </tr>
            </tbody>
        </table>
    </div>
    <script>
        new Vue({
            el: "#app",
            data: {
                saveDate:{
                    personName: "",
                    personSkil: ""
                },
                person: [{
                    personName: "張三",
                    personSkil: "殺人"
                }, {
                    personName: "李四",
                    personSkil: "防火"
                }, {
                    personName: "趙六",
                    personSkil: "放屁"
                }]
            },
            methods: {
                save() {
                    this.person.push(this.saveDate)
                    console.log(this.saveDate)
                },
                del(index) {
                    this.person.splice(index, 1)
                }
            },
        })
    </script>
</body>

</html>

解決辦法

把model綁定的對象,更改成綁定變量,解決問題

 

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <script src="../vue.js"></script>
    <style>
        table {
            border: 1px solid #ccc;
            border-spacing: 0;
        }
        th,
        td {
            width: 200px;
            border: 1px solid #ccc;
        }
    </style>
</head>
<body>
    <div id="app">
        英雄名稱<input v-model="personName" type="text">
        英雄技能 <input v-model="personSkil" type="text">
        <button @click="save">save</button>
        <table>
            <thead>
                <tr>
                    <th>序號</th>
                    <th>名稱</th>
                    <th>技能</th>
                    <th>opration</th>
                </tr>
            </thead>
            <tbody>
                <tr v-for="(item,index) in person">
                    <td>{{index}}</td>
                    <td>{{item.personName}}</td>
                    <td>{{item.personSkil}}</td>
                    <td> <button @click="del(index)">刪除</button> </td>
                </tr>
            </tbody>
        </table>
    </div>
    <script>
        new Vue({
            el: "#app",
            data: {
                personName: "",
                personSkil: "",
                person: [{
                    personName: "張三",
                    personSkil: "殺人"
                }, {
                    personName: "李四",
                    personSkil: "防火"
                }, {
                    personName: "趙六",
                    personSkil: "放屁"
                }]
            },
            methods: {
                save() {
                    this.person.push({personName:this.personName,personSkil:this.personSkil})
                },
                del(index) {
                    this.person.splice(index, 1)
                }
            },
        })
    </script>
</body>

</html>

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM