vue----常用實例方法--$mount(),$destroy(),$watch(),$forceUpdate()


常用的實例方法:
$mount()外部設置el,  vue的作用范圍
$destroy()手動銷毀
$watch()監聽
$forceUpdate()強制更新

1.$mount()外部設置el, vue的作用范圍

<body>
    <div id="app">
        <h2>{{message}}</h2>
    </div>
 
    <button onclick="add()">添加el</button>
</body>
</html>
<script src="vue.js"></script>
<script>
 
    var vm = new Vue({
        data:{
            message:"張三"
        }
    })
 
    //實例外創建el
    function add(){
        //外部設置el。vue的作用范圍
       vm.$mount("#app");
    }
 
</script>

 

 
 
<body>
    <div id="app">
        <h2>{{message}}</h2>
        <p>{{age}}</p>
        <input type="text" v-model="obj.name">
        <button @click="watchDeep()" >外部監聽</button>
 
    </div>
 
    <button onclick="add()">添加el</button>
    <button onclick="destroy()">銷毀</button>
    <button onclick="update()">強制更新</button>
    
</body>
</html>
<script src="vue.js"></script>
<script>
 
    var vm = new Vue({
        data:{
            message:"張三",
            obj:{
                name:"張三",
                age:18
            }
        },
        methods:{
            watchDeep(){
                this.$watch("obj",()=>{
                    console.log("事件監聽");
                },{
                    deep:true
                })
            }
        }
    })
 
    vm.age = 18;
 
    //實例外創建el
    function add(){
        //外部設置el。vue的作用范圍
        vm.$mount("#app");
    }
 
    function destroy(){
        //銷毀vm實例與DOM之間的關聯
 vm.$destroy();
    }
 
    /*只有在實例化方法中,添加屬性,才會有setter和getter方法,實現數據雙向通信
        在實例化方法外,添加屬性,沒有setter和getter方法,不能雙向通信,解決方法:強制更新$.forceUpdate()
    */function update(){
        vm.$forceUpdate();
    }
 
    //外部監聽
    // vm.$watch("obj",()=>{
    //      console.log("執行監聽")
    // },{
    //     deep:true
    // })
 
</script>

 

 
 
 
 
 
 
 
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM