Vue复习(2):终端创建、基本使用及其生命周期

阅读 45

2022-03-13

文章目录


前言

下面正式介绍在终端创建Vue项目。

一、Vue的安装和创建

二、Vue基本使用

用法与我们在引入链接时的差不多,所以这里将之前Vue复习(1):引入Vue链接创建项目里面做过的练习,这里再写一遍
首先是文件目录:
在这里插入图片描述

<template>
  <div id="app" @click="add">
     {{num}}
     {{test}}
     <Demo name="Lucy" :age="123  "></Demo>
  </div>
</template>

<script>
import Demo from './components/Demo.vue'
export default {
  name: 'App',
  data:function(){
    return{
      num:100,
    }
  },
  components:{
    Demo:Demo
  },
  methods:{
    add:function(){
      this.num++;
    }
  },
  computed:{
    test:function(){
      return this.num%2==0?"偶数":"奇数"
    }
  }
}
</script>

<template>
    <div>
        <p>{{name}}</p>
        <p>{{age}}</p>
    </div>
</template>

<script>
export default {
    name:"Demo",
    props:{
        name:String,
        age:{
            type:Number,
        }
    }
}
</script>

代码结果显示(点击num加1,会判断奇偶,下方显示props参数)
在这里插入图片描述

三、props中的属性限制

如下对于age的限制, default:100000,指的是如果你没有传递age这个属性后的默认值,required:true则是强制性传递age,不然会报错

在这里插入图片描述
然后就是validator限制,你可以直接规定你的值的范围或满足其他的条件,这一限制是针对值的。 例如下面的代码:

在这里插入图片描述
这里的限制就是要求你的值大于5,不然就是不合法的,然后就会报错
在这里插入图片描述

四、生命周期

1.

组件装载期间

1.beforeCreate

观察下面代码,在beforeCreate中打印data中的状态和调用methods中的函数,

<template>
  <div id="app" @click="add">
    {{num}}
  </div>
</template>

<script>
export default {
  name: 'App',
  data:function(){
    return{
       num:100,
       value:111
    }
  },
  methods:{
     add(){
       this.num++;
     }
  },
  beforeCreate(){
     console.log(this.num)
     console.log(this.value)
     this.add()
  }
}
</script>

结果如下,可以发现,状态的打印结果是underfined,而函数的调用则开始报错:
在这里插入图片描述

2.created

<template>
  <div id="app" @click="add">
    {{num}}
  </div>
</template>

<script>
export default {
  name: 'App',
  data:function(){
    return{
       num:100,
       value:111
    }
  },
  methods:{
     add(){
       this.num++;
     }
  },
  // beforeCreate(){
  //    console.log(this.num)
  //    console.log(this.value)
  //    this.add()
  // }
  created(){
    console.log(this.num)
    console.log(this.value)
    this.add()
  }
}
</script>


结果如下,add调用加1,显示结果:
在这里插入图片描述

3.beforeMount

<template>
  <div id="app" @click="add">
    {{num}}
  </div>
</template>

<script>
export default {
  name: 'App',
  data:function(){
    return{
       num:100,
       value:111
    }
  },
  methods:{
     add(){
       this.num++;
     }
  },
  beforeMount(){
     console.log(this.num)
     this.add()
     console.log(document.getElementById('app').innerText)
  }
}
</script>

结果34行打印为空。
在这里插入图片描述

4.mounted
此时已经将编译好的模板挂载到了页面上显示

<template>
  <div id="app" @click="add">
    {{num}}
  </div>
</template>

<script>
export default {
  name: 'App',
  data:function(){
    return{
       num:100,
       value:111
    }
  },
  methods:{
     add(){
       this.num++;
     }
  },
  mounted(){
     console.log(this.num)
     this.add()
     console.log(document.getElementById('app').innerText)
  },
}
</script>

在这里插入图片描述

组件更新期间

5.beforeUpdate

6.updated

两者代码一起写,比较观察:

<template>
  <div id="app" @click="add">
    {{num}}
  </div>
</template>

<script>
export default {
  name: 'App',
  data:function(){
    return{
       num:100,
       value:111
    }
  },
  methods:{
     add(){
       this.num++;
     }
  },
  beforeUpdate(){
    console.log('-------完成更新前-------')
    console.log('这是data里的num',this.num)
    console.log('这是页面上的num',document.getElementById('app').innerText)
  },
  updated(){
    console.log('-------完成更新后-------')
    console.log('这是data里的num',this.num)
    console.log('这是页面上的num',document.getElementById('app').innerText)
  }
}
</script>

在这里插入图片描述

组件销毁期间

7.beforeDestroy

8.destroyed

精彩评论(0)

0 0 举报