12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <meta http-equiv="X-UA-Compatible" content="IE=edge">
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
- <title>分析生命周期</title>
- <!-- 引入vue -->
- <script type="text/javascript" src="../js/vue.js"></script>
- </head>
- <body>
- <!-- 准备一个容器 -->
- <div id="root">
- <h2>当前的n值是:{{n}}</h2>
- <button @click="add">点我n+1</button>
- <button @click="bye">点我销毁vm</button>
- </div>
- </body>
- <script>
- Vue.config.productionTip = false //阻止 vue 在启动时生成生产提示
- new Vue({
- el: '#root',
- // template模板:可以替换掉容器里的内容,必须只能有一个容器,如果写成一行
- // 可以使用单引号,如果需要换行,则需要使用着重号
- // template不能作为根标签使用
- // template:'<div><h2>当前的n值是:{{n}}</h2><button @click="add">点我n+1</button></div>',
- // template:`<div>
- // <h2>当前的n值是:{{n}}</h2>
- // <button @click="add">点我n+1</button>
- // </div>`,
- data: {
- n: 1
- },
- methods: {
- add(){
- console.log('add')
- this.n++
- },
- bye(){
- console.log('bye');
- this.$destroy()
- }
- },
- watch:{
- n(){
- console.log('n变了')
- }
- },
- beforeCreate() {
- console.log('beforeCreate')
- // console.log(this)
- // debugger; //添加debugger,就是添加一个断点,让程序运行到此处时暂停
- },
- created() {
- console.log('created')
- // console.log(this)
- // debugger;
- },
- beforeMount() {
- console.log('beforeMount')
- // console.log(this)
- // debugger;
- },
- mounted() {
- console.log('mounted')
- // console.log(this)
- // console.log(this.$el instanceof HTMLElement)
- // debugger;
- },
- beforeUpdate() {
- console.log('beforeUpdate')
- // console.log(this.n)
- // debugger
- },
- updated() {
- console.log('updated')
- // console.log(this.n)
- // debugger
- },
- beforeDestroy() {
- console.log('beforeDestroy')
- console.log(this.n)
- this.add()
- },
- destroyed() {
- console.log('destroyed')
- },
- })
- </script>
- </html>
|