Refactor #3965 - Added `hooks` keyword to control all lifecycle methods to self/global PT options
parent
d9baf298d5
commit
3442acade4
|
@ -382,10 +382,40 @@ export default {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
beforeCreate() {
|
||||||
|
this.pt?.hooks?.['beforeCreate']?.();
|
||||||
|
this.$primevue?.config?.pt?.[this.$.type.name]?.hooks?.['beforeCreate']?.();
|
||||||
|
},
|
||||||
|
created() {
|
||||||
|
this._hook('created');
|
||||||
|
},
|
||||||
beforeMount() {
|
beforeMount() {
|
||||||
loadBaseStyle();
|
loadBaseStyle();
|
||||||
|
this._hook('beforeMount');
|
||||||
|
},
|
||||||
|
mounted() {
|
||||||
|
this._hook('mounted');
|
||||||
|
},
|
||||||
|
beforeUpdate() {
|
||||||
|
this._hook('beforeUpdate');
|
||||||
|
},
|
||||||
|
updated() {
|
||||||
|
this._hook('updated');
|
||||||
|
},
|
||||||
|
beforeUnmount() {
|
||||||
|
this._hook('beforeUnmount');
|
||||||
|
},
|
||||||
|
unmounted() {
|
||||||
|
this._hook('unmounted');
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
_hook(hookName) {
|
||||||
|
const selfHook = this._getOptionValue(this.pt, `hooks.${hookName}`);
|
||||||
|
const globalHook = this._getOptionValue(this.globalPT, `hooks.${hookName}`);
|
||||||
|
|
||||||
|
selfHook?.();
|
||||||
|
globalHook?.();
|
||||||
|
},
|
||||||
_getHostInstance(instance) {
|
_getHostInstance(instance) {
|
||||||
return instance ? (this.$options.hostName ? (instance.$.type.name === this.$options.hostName ? instance : this._getHostInstance(instance.$parentInstance)) : instance.$parentInstance) : undefined;
|
return instance ? (this.$options.hostName ? (instance.$.type.name === this.$options.hostName ? instance : this._getHostInstance(instance.$parentInstance)) : instance.$parentInstance) : undefined;
|
||||||
},
|
},
|
||||||
|
|
|
@ -27,11 +27,11 @@ const BaseDirective = {
|
||||||
},
|
},
|
||||||
_hook: (directiveName, hookName, el, binding, vnode, prevVnode) => {
|
_hook: (directiveName, hookName, el, binding, vnode, prevVnode) => {
|
||||||
const config = binding?.instance?.$primevue?.config;
|
const config = binding?.instance?.$primevue?.config;
|
||||||
const globalHook = config?.pt?.directives?.[directiveName]?.hooks?.[hookName];
|
|
||||||
const selfHook = binding?.value?.pt?.hooks?.[hookName];
|
const selfHook = binding?.value?.pt?.hooks?.[hookName];
|
||||||
|
const globalHook = config?.pt?.directives?.[directiveName]?.hooks?.[hookName];
|
||||||
|
|
||||||
globalHook?.(el, binding, vnode, prevVnode);
|
|
||||||
selfHook?.(el, binding, vnode, prevVnode);
|
selfHook?.(el, binding, vnode, prevVnode);
|
||||||
|
globalHook?.(el, binding, vnode, prevVnode);
|
||||||
},
|
},
|
||||||
_extend: (name, options = {}) => {
|
_extend: (name, options = {}) => {
|
||||||
const handleHook = (hook, el, binding, vnode, prevVnode) => {
|
const handleHook = (hook, el, binding, vnode, prevVnode) => {
|
||||||
|
|
Loading…
Reference in New Issue