为了账号安全,请及时绑定邮箱和手机立即绑定

vue中使用mixin组件复用问题

vue中使用mixin组件复用问题

慕妹3242003 2018-11-15 10:18:00
简单描述下场景,比如a.component,b.component均会使用到如下代码,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();        }    }}两个组件在使用该段代码的时候之后,只用通信的时候请求的url不一样,怎么使用mixin复用,菜狗求指点~
查看完整描述

1 回答

?
牧羊人nacy

TA贡献1862条经验 获得超7个赞

你唯一不同的是url,那么你把url作为data属性定义不就行了,你的mixin添加data属性url,然后在a,b组件中分别定义url,就会覆盖mixin中的url,如下:

mixin:

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同a定义方式

查看完整回答
反对 回复 2018-12-21
  • 1 回答
  • 0 关注
  • 609 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号