ant-design-vue
Version:
An enterprise-class UI design language and Vue-based implementation
61 lines (52 loc) • 2.05 kB
JavaScript
Object.defineProperty(exports, "__esModule", {
value: true
});
var _toConsumableArray2 = require('babel-runtime/helpers/toConsumableArray');
var _toConsumableArray3 = _interopRequireDefault(_toConsumableArray2);
var _extends2 = require('babel-runtime/helpers/extends');
var _extends3 = _interopRequireDefault(_extends2);
var _propsUtil = require('./props-util');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
exports['default'] = {
directives: {
ref: {
bind: function bind(el, binding, vnode) {
binding.value(vnode.componentInstance ? vnode.componentInstance : vnode.elm);
},
update: function update(el, binding, vnode) {
binding.value(vnode.componentInstance ? vnode.componentInstance : vnode.elm);
},
unbind: function unbind(el, binding, vnode) {
binding.value(null);
}
}
},
methods: {
setState: function setState(state, callback) {
var newState = typeof state === 'function' ? state(this.$data) : state;
if (this.getDerivedStateFromProps) {
(0, _extends3['default'])(newState, this.getDerivedStateFromProps((0, _propsUtil.getOptionProps)(this), this.$data, true) || {});
}
(0, _extends3['default'])(this.$data, newState);
this.$nextTick(function () {
callback && callback();
});
},
__emit: function __emit() {
// 直接调用listeners,底层组件不需要vueTool记录events
var args = [].slice.call(arguments, 0);
var filterEvent = [];
var eventName = args[0];
if (args.length && this.$listeners[eventName]) {
if (filterEvent.includes(eventName)) {
this.$emit.apply(this, [eventName].concat((0, _toConsumableArray3['default'])(args.slice(1))));
} else {
var _$listeners;
(_$listeners = this.$listeners)[eventName].apply(_$listeners, (0, _toConsumableArray3['default'])(args.slice(1)));
}
}
}
}
};
module.exports = exports['default'];
;