javascript - Guna semula isu menggunakan komponen mixin dalam vue
仅有的幸福
仅有的幸福 2017-06-14 10:53:39
0
3
835

Terangkan secara ringkas senario Contohnya, a.component dan b.component akan menggunakan kod berikut,

import axios from 'axios';
export default(){
    data(){
        return {
            initList: [],
            pageSize: 10,
            pageNo: 1
        }
    },
    created(){
        this.initList();
    },
    methods: {
        initList(){
            axios({
                url: '/list1',
                data: {}
            })
            .then(res => res.data)
            .then(data => {
                this.initList = data;
            })
        },
        pageSizeChange(size){
            this.pageSize = size;
            this.initList();
        },
        pageNoChange(pageNo){
            this.pageNo = pageNo;
            this.initList();
        }
    }
}

Selepas menggunakan kod ini, kedua-dua komponen meminta URL yang berbeza apabila mereka hanya berkomunikasi

仅有的幸福
仅有的幸福

membalas semua(3)
世界只因有你

Satu-satunya perbezaan yang anda ada ialah url Kemudian anda boleh mentakrifkan url sebagai atribut data Tambahkan url atribut data pada mixin anda, dan kemudian tentukan url dalam komponen a dan b, yang akan menimpa url dalam. mixin, seperti berikut:

campuran:

import axios from 'axios';
export default(){
    data(){
        return {
            url: '', // 看这里!
            initList: [],
            pageSize: 10,
            pageNo: 1
        }
    },
    created(){
        this.initList();
    },
    methods: {
        initList(){
            let url = this.url;
            axios({
                url: url,
                data: {}
            })
            .then(res => res.data)
            .then(data => {
                this.initList = data;
            })
        },
        pageSizeChange(size){
            this.pageSize = size;
            this.initList();
        },
        pageNoChange(pageNo){
            this.pageNo = pageNo;
            this.initList();
        }
    }
}

a:

export default(){
    mixins: [引入mixin],
    data(){
        url: '这里是a中的url'
    }
}

b ditakrifkan dengan cara yang sama seperti a

習慣沉默

Masukkan kod berulang ke dalam mixin.js, dan tulis initList() yang tidak diduplikasi dalam setiap komponen secara berasingan

过去多啦不再A梦

Apa yang saya fikirkan sekarang ialah

initList () {
    let url = ''
    // 这个地方写个判断
    if (条件a){
        url = ...
    } else {
        url = ...
    }
    axios({
        url: url,
        data: {}
    })
}

Tidak perlu mengubah apa-apa lagi untuk menilai cara menulis, tulis sendiri berdasarkan perbezaan antara dua muka surat.

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!