uni-app(vue)组件继承或方法重写

182 阅读1分钟

比如我要重写UniFilePicker的delFile方法,给该方法增加一个确认弹窗,首先创建一个FilePicker.js

注意,一定是要js文件,如果是vue文件,会导致模版和样式丢失,我估计原因是vue文件在编译器解析时候,就是固定按template、script、style来解析的,就算不写template也认为是空

通过 mixins 继承父组件的所有内容,然后就可以根据需求修改,实现想要的组件

// FilePicker.js
import UniFilePicker from "@/uni_modules/uni-file-picker/components/uni-file-picker/uni-file-picker.vue";  
  
export default {  
name: "FilePicker",  
mixins: [UniFilePicker],  
components: {  
    UniFilePicker  
    },  
    /**  
    * 重写删除文件方法  
    * @param {Object} index  
    */  
    methods: {  
        async delFile(index) {  
            console.log('--delFile--', index)
            await modal.confirm('确定要删除该文件吗?')
            this.$emit('delete', {  
                index,  
                tempFile: this.files[index],  
                tempFilePath: this.files[index].url  
            })  
        }  
    },  
}