Implementing Automatic Function Calls on Page Load in Vue.js: A Comprehensive Guide to Lifecycle Hooks

Nov 21, 2025 · Programming · 10 views · 7.8

Keywords: Vue.js | Lifecycle Hooks | Page Load | Function Calls | beforeMount | mounted | created

Abstract: This article provides an in-depth exploration of methods to automatically call functions on page load in Vue.js, with detailed analysis of lifecycle hooks including beforeMount, mounted, and created. Through practical code examples, it demonstrates how to execute data retrieval functions during component initialization, addressing the challenge of missing ng-init functionality when migrating from AngularJS to Vue.js. The paper also offers comprehensive insights into Vue.js's complete lifecycle process, providing professional guidance for developers in selecting appropriate hook functions.

Problem Context and Requirements Analysis

In practical Vue.js development, there is often a need to automatically execute certain functions during initial page load, such as data initialization, API calls, or state configuration. This article addresses a specific development scenario: the requirement to automatically call a data filtering function getUnits on page load, which retrieves data via HTTP POST requests and returns all data when no user selection has been made.

Core Solution: Lifecycle Hooks

Vue.js provides comprehensive component lifecycle hooks that allow execution of custom logic at specific timing points. For the requirement of calling functions on page load, the following hooks are primarily applicable:

Application of beforeMount Hook

The beforeMount hook is called right before mounting begins, when templates have been compiled but not yet mounted to the DOM. This represents one of the ideal timings for calling initialization functions:

new Vue({
    el: '#app',
    data: {
        units: [],
        block: '',
        floor: '',
        unit_type: '',
        status: ''
    },
    methods: {
        getUnits: function() {
            var input = {
                block: this.block, 
                floor: this.floor, 
                unit_type: this.unit_type, 
                status: this.status
            };
            
            this.$http.post('/admin/units', input).then(function(response) {
                console.log(response.data);
                this.units = response.data;
            }, function(response) {
                console.log(response);
            });
        }
    },
    beforeMount() {
        this.getUnits();
    }
});

Alternative Approach with mounted Hook

The mounted hook is called after the instance has been mounted, when DOM elements become available. If function execution requires access to DOM elements, this hook is recommended:

mounted() {
    this.getUnits();
}

Suitable Scenarios for created Hook

The created hook is called immediately after instance creation, when data observation and event mechanisms have been initialized but DOM has not been mounted:

created() {
    this.getUnits();
}

In-depth Analysis of Lifecycle Hooks

Understanding Vue.js's complete lifecycle is crucial for selecting the appropriate hooks:

Initialization Phase

beforeCreate: Called after instance initialization but before data observation and event configuration. Instance data and methods are not available at this stage.

created: Called after instance creation is complete. Data observation, computed properties, methods, and watch/event callbacks have been configured. data and methods are accessible, but the $el property is not yet available.

Mounting Phase

beforeMount: Called right before mounting begins. The associated render function is called for the first time.

mounted: Called after the instance has been mounted. The el is replaced by the newly created vm.$el. DOM elements can be safely manipulated.

Update Phase

beforeUpdate: Called when data changes, before the virtual DOM is re-rendered and patched.

updated: Called after a data change causes the virtual DOM to be re-rendered and patched.

Destruction Phase

beforeDestroy: Called right before instance destruction. The instance remains fully functional at this point.

destroyed: Called after the instance has been destroyed. All event listeners and child instances have been removed.

Practical Recommendations and Best Practices

When selecting lifecycle hooks, consider the specific requirements of your function:

If the function only needs to access component data without involving DOM manipulation, the created hook is the optimal choice as it executes at the earliest timing.

If the function requires DOM element manipulation or depends on DOM structure, the mounted hook should be used.

The beforeMount hook is suitable for performing preparatory work before DOM mounting, though it is generally less commonly used than created and mounted.

For data initialization functions like getUnits, which primarily involve API calls without DOM operations, using the created hook provides the earliest execution timing.

Migration Considerations from AngularJS to Vue.js

For developers migrating from AngularJS, Vue.js does not provide a direct equivalent to the ng-init directive. Lifecycle hooks offer more flexible and powerful alternatives. Compared to ng-init, Vue.js lifecycle hooks:

Provide more precise timing control

Support asynchronous operations

Integrate better with component-based architecture

Feature clearer execution sequences

Conclusion

Vue.js lifecycle hooks offer multiple options for executing functions on page load. By appropriately selecting beforeMount, mounted, or created hooks, automatic function calls during page initialization can be elegantly implemented. Understanding the specific timing and applicable scenarios of each hook contributes to writing more efficient and reliable Vue.js applications.

Copyright Notice: All rights in this article are reserved by the operators of DevGex. Reasonable sharing and citation are welcome; any reproduction, excerpting, or re-publication without prior permission is prohibited.