一、vue的生命周期:实例从创建到销毁的过程
二、生命周期钩子
beforecreate、created
beforeMount、mounted
beforeUpdate、updated
beforeDestroy、destroyed
三、各个钩子的触发阶段
1、beforecreate: 在实例化之后(new vue),数据观测(data observer)和 event/watcher之前调用
2、created:实例已经创建完成之后被调用,在这一步,实例已完成如下配置,数据观测(data observer)、属性和方法的运算,watch/event事件回调,挂载阶段未开始,$el属性目前不可见。
3、beforeMount: 在挂载开始之前被调用,相关的render函数首次被调用。
4、mounted: el被创建的vm.$el替换,并挂载到实例上去之后调用
5、beforeUpdat: 数据更新时调用,发生在虚拟机Dom重新渲染和打补丁之前,在这个钩子中进一步地更改状态,这不会触发附加的重渲染过程。
6、updated: 在数据更改导致的虚拟Dom重新渲染避免在此期间更改状态,该钩子在服务器端渲染期间不被调用。
7、beforeDestroy:实例销毁之前调用,在这一步,实例仍然可用
8、destroyed:vue实例销毁后调用,vue实例指示的所有东西都会解绑,所有事件都会移除,所有的子实例也会被销毁,该钩子在服务器端渲染期间不被调用。
四、computed、watch、methods区别
computed:在文档首次加载时会执行一次,当Vue实例中的data属性变化并被computed中的计算属性(方法)引用时,所有的相关计算属性又会执行一次。
watch:顾名思义,侦听器,当计算属性执行完毕后,执行watch继续侦听缓存中的对应Vue实例的data属性,如若再次侦听到data属性值有变,便又会触发computed。
methods:方法 当然是要由行为来触发,比如点击事件,他和以上两个并无太大关系,个人将其理解为一个普通的方法组。
二、参数传递
vue传递参数
1.query方式传参和接收参数
传参:
this.$router.push({ path:’/xxx’, query: {id:id} })
接收参数:
this.$route.query.id
注意:传参是this. r o u t e r , 接 收 参 数 是 t h i s . router,接收参数是this. router,接收参数是this.route,这里千万要看清了!!!
2.params方式传参和接收参数(只能使用name进行引入)
传参: 如果在路由配置 path /:id 这样就不会丢参
this.$router.push({ name:‘xxx’, params:{id:id} })
接收参数:
this.$route.params.id
注意:params传参,push里面只能是 name:‘xxxx’,不能是path:’/xxx’,因为params只能用name来引入路由,如果这里写成了path,接收参数页面会是undefined!!!
另外,二者还有点区别,直白的来说query相当于get请求,页面跳转的时候,可以在地址栏看到请求参数,而params相当于post请求,参数不会在地址栏中显示