vue生命周期和参数传递

一、vue的生命周期:实例从创建到销毁的过程
vue生命周期和参数传递_第1张图片
二、生命周期钩子

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请求,参数不会在地址栏中显示

你可能感兴趣的:(vue,vue)