1. 程式人生 > 實用技巧 >TypeError: 'module' object is not callable

TypeError: 'module' object is not callable

vue生命週期


概念

  • Vue例項從 建立, 執行,到銷燬期間伴隨著的事件統稱為生命週期
  • 生命週期鉤子 = 生命週期函式 = 生命週期時間
  • 生命週期鉤子分為建立期間的生命週期函式執行期間的生命週期函式銷燬期間的生命週期函式


程式碼

<!DOCTYPE html>
<html>

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>生命週期</title>
</head>

<body>
    <div id="app">
        <h3 id="h3">{{ msg }}</h3>
        <input type="button" value="修改資料" @click="msg='no'">
    </div>
</body>
<script type="text/javascript" src="js/vue.min.js"></script>
<script type="text/javascript">
    var vm = new Vue({
        el: '#app',
        data: {
            msg: 'ok'
        },
        methods: {},
        beforeCreate() {  //第一個生命週期函式, 表示例項完全沒被創建出來之前會執行它
            console.log('beforeCreate', this.msg);
        },
        created() {   // data 和 methods 都已經被初始化好了, 如果要呼叫methods中的方法或者data中的資料, 最早只能在鉤子函式created裡操作
            console.log('created', this.msg)
        },
        beforeMount() {   //這是第三個生命週期函式, 模版已經在記憶體中編譯完成, 並未掛載到頁面中,此時頁面還是舊的
            console.log('beforeMount', document.getElementById('h3').innerText)  // {{ msg }}
        },
        mounted() {  //例項建立期間的最後一個生命週期函式, 當執行完mounted, 例項已經完全建立好了
            console.log('mounted', document.getElementById('h3').innerText)
        },
        // 執行中的兩個事件
        beforeUpdate() {
            console.log('執行beforeUpdate方法, 此時頁面上的資料: ', document.getElementById('h3').innerText)
            console.log('執行beforeUpdate方法, 此時models層裡的資料(data中msg的資料): ', this.msg)
            //當執行beforeUpdate, 頁面中顯示的資料還是舊的, 此時 data資料是最新的, 頁面尚未和最新的資料保持同步
        },
        updated() {
            console.log('執行updated方法, 此時頁面上的資料: ', document.getElementById('h3').innerText)
            console.log('執行updated方法, 此時models層裡的資料(data中msg的資料): ', this.msg)
            //updated 事件執行的時候, 頁面和data 資料已經保持同步裡, 頁面上的資料是最新的
        },
    });

</script>

</html>

  • 建立階段執行結果


  • 執行階段執行結果