常用的實例方法:
$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>