- Full-Stack Vue.js 2 and Laravel 5
- Anthony Gore
- 281字
- 2021-07-02 19:57:23
Lifecycle hooks
When your main script is run and your instance of Vue is set up, it goes through a series of initialization steps. As we said earlier, Vue will walk through your data objects and make them reactive, as well as compile the template and mount to the DOM. Later in the lifecycle, Vue will also go through updating steps, and later still, tear-down steps.
Here is a diagram of the lifecycle instance taken fromhttp://vuejs.org. Many of these steps concern concepts that we haven't yet covered, but you should get the gist:

Figure 2.11. Vue.js lifecycle diagram
Vue allows you to execute custom logic at these different steps vialifecycle hooks,which are callbacks defined in the configuration object.
For example, here we utilize thebeforeCreateandcreatedhooks:
new Vue({ data: { message: 'Hello' }, beforeCreate: function() { console.log('beforeCreate message: ' + this.message); // "beforeCreate message: undefined" }, created: function() { console.log('created: '+ this.message); // "created message: Hello" }, });
Vue will alias data properties to the context objectafterthebeforeCreatehook is called butbeforethecreatedhook is called, hence whythis.messageisundefinedin the former.
The caveat I mentioned earlier about theEscapekey listener is this: although unlikely, if theEscapekey was pressed and our callback was calledbeforeVue has proxied the data properties,app.modalOpenwould beundefinedrather thantrueand so ourifstatement would not control flow like we expect.
To overcome this we can set up the listener in thecreatedlifecycle hook that will be calledafterVue has proxied the data properties. This gives us a guarantee thatmodalOpenwill be defined when the callback is run.
app.js:
function escapeKeyListener(evt) { if (evt.keyCode === 27 && app.modalOpen) { app.modalOpen = false; } } var app = new Vue({ data: { ... }, watch: { ... }, created: function() { document.addEventListener('keyup', escapeKeyListener); } });
- DBA攻堅指南:左手Oracle,右手MySQL
- Apache Spark 2.x Machine Learning Cookbook
- Network Automation Cookbook
- Python爬蟲開發與項目實戰
- Java 11 Cookbook
- Python程序設計與算法基礎教程(第2版)(微課版)
- OpenCV Android開發實戰
- Practical Predictive Analytics
- PhoneGap 4 Mobile Application Development Cookbook
- C語言從入門到精通
- Hack與HHVM權威指南
- 用Python動手學統計學
- Unity 5 Game Optimization
- 威脅建模:設計和交付更安全的軟件
- Learning C# by Developing Games with Unity 3D Beginner's Guide