我在一个项目中使用了vuejs-datepicker组件,但我需要一些自定义行为,这就是为什么我决定创建自己的日期 Select 器,并将vuejs日期 Select 器作为一个混入器注入.这个解决方案工作得很好,但我正在寻找一种在重写的方法中调用父方法的方法.这就是我的组件目前的外观:

  import Datepicker from 'vuejs-datepicker'

  export default {
    props: {
      /**
       * My custom property startDate to open a calendar on the given date by default
       */
      startDate: {
        validator: function (val) {
          return val === null || val instanceof Date || typeof val === 'string'
        },
        default: new Date()
      }
    },

    mixins: [ Datepicker ],

    methods: {
      /**
       * I override parent method setPageDate to read default startDate when none is specified
       */
      setPageDate (date) {
        // my code to set default date from the property
        if (!date) {
          date = this.startDate
        }

        // this part is the same as in the original method
        this.pageDate = new Date(date.getFullYear(), date.getMonth(), 1, date.getHours(), date.getMinutes()).getTime()
      }
    }
  }

仅仅复制一行代码并不是什么大不了的事,但我希望我将来需要重写更多的方法.所以我在寻找在我的实现中调用父方法的最佳方法,比如this.parent(date)this.super(date).有可能吗?

推荐答案

没有super或类似的东西.你可以这样做:

  setPageDate (date) {
    // my code to set default date from the property
    if (!date) {
      date = this.startDate
    }

    Datepicker.methods.setPageDate.call(this, date)
  }

Vue.js相关问答推荐

将事件监听器绑定到动态元素

为什么在Vue.js中修改非react 性似乎是react 性的?

通过另一个文件调用模块化窗口组件

为什么发送 POST API 请求时主体对象没有react ?

在预渲染模式下部署 nuxt 3 时出错

Vue CLI: 如何在一个vtextfield更改时让另一个vtextfield的值也同时更改,但同时又可以覆盖它?

vite - 具有相对assets资源 路径的子页面

Vue 单元测试:您正在开发模式下运行 Vue?

如何为 Vue 项目设置 lint-staged?

PhpStorm 中Expected预期表达式

当前端和后端位于虚拟 docker 网络中时,如何使用 axios 寻址后端主机

使用 Vue.js (cdn) 在特定元素上切换显示/隐藏

axios.patch / axios.put 在 Vue 和 Laravel 中不起作用

JavaScript/VueJS:判断数组是否包含具有特定值元素的对象

带有子菜单的 Vuetify 导航抽屉

为什么我在 vue.js 中得到避免使用 JavaScript 一元运算符作为属性名称?

在 Vue JS 组件中使用 Laravel 路由的最佳方法是什么

何时使用

在~/components/AddPlaceModal.vue中找不到导出AddPlaceModal

如何在 vue3 中的setup方法中发出事件?