cari

Rumah  >  Soal Jawab  >  teks badan

javascript - masalah responsif vue

<p id="app">
    <h1>
        {{ count.id }}
    </h1>
    <h2>
        {{ item[0].id }}
    </h2>
</p>
<script>
let vm = new Vue({
    el: '#app',
    data () {
        return {
            item: [
                {
                    id: 60
                }
            ],
            count: {}
        }
    },
    mounted () {
        this.count = this.item[0];  // 赋值给count
    }
});
</script>

Cetak dalam konsol: vm.count.id--

Anda akan dapati item.id juga telah ditukar. Saya jelas hanya menukar count.id

Bagaimana untuk mengelakkan penyegerakan? Saya cuma nak tukar count.id

滿天的星座滿天的星座2816 hari yang lalu574

membalas semua(3)saya akan balas

  • phpcn_u1582

    phpcn_u15822017-05-19 10:41:39

    Masalah salinan cetek dan salinan dalam.

    balas
    0
  • 淡淡烟草味

    淡淡烟草味2017-05-19 10:41:39

    Ini masih menjadi isu asas dengan jenis data JS.
    Berdasarkan kod yang anda berikan, item ialah tatasusunan, menetapkan tatasusunan kepada pembolehubah lain hanya memberikan rujukan kepada tatasusunan Sudah tentu, jika anda menukar tatasusunan ini, semua rujukan kepada tatasusunan ini.

    Penyelesaian 1:

    this.count = this.item.slice(0, 1);

    balas
    0
  • 天蓬老师

    天蓬老师2017-05-19 10:41:39

    Tatasusunan ialah struktur indeks, yang bermaksud ia bersamaan dengan dua penunjuk yang menunjuk ke tempat yang sama, jadi jika anda menukar salah satu daripadanya, yang lain juga akan berubah. Mengenai cara untuk mengelakkannya, saya mengesyorkan menggunakan tugasan memusnahkan dalam ES6 Anda boleh merujuk kepada dokumentasi.
    Beri saya contoh:

    balas
    0
  • Batalbalas