diff --git a/components/lib/basecomponent/BaseComponent.vue b/components/lib/basecomponent/BaseComponent.vue index 2a96b44cb..870c331cc 100644 --- a/components/lib/basecomponent/BaseComponent.vue +++ b/components/lib/basecomponent/BaseComponent.vue @@ -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() { 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: { + _hook(hookName) { + const selfHook = this._getOptionValue(this.pt, `hooks.${hookName}`); + const globalHook = this._getOptionValue(this.globalPT, `hooks.${hookName}`); + + selfHook?.(); + globalHook?.(); + }, _getHostInstance(instance) { return instance ? (this.$options.hostName ? (instance.$.type.name === this.$options.hostName ? instance : this._getHostInstance(instance.$parentInstance)) : instance.$parentInstance) : undefined; }, diff --git a/components/lib/basedirective/BaseDirective.js b/components/lib/basedirective/BaseDirective.js index 01e206acd..3b334b535 100644 --- a/components/lib/basedirective/BaseDirective.js +++ b/components/lib/basedirective/BaseDirective.js @@ -27,11 +27,11 @@ const BaseDirective = { }, _hook: (directiveName, hookName, el, binding, vnode, prevVnode) => { const config = binding?.instance?.$primevue?.config; - const globalHook = config?.pt?.directives?.[directiveName]?.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); + globalHook?.(el, binding, vnode, prevVnode); }, _extend: (name, options = {}) => { const handleHook = (hook, el, binding, vnode, prevVnode) => {