vue2 mounted,beforeUpdate,updated问题

父组件传了一个属性,我需要用这个属性发请求,如果把请求放在mounted里就会只执行一次,以后再触发更新,子组件不会重新渲染,如果把请求放在beforeUpdate和updated里 就会无限发请求;

mounted() {

  var vm=this;
  function firstData(){
    vm.$http({
      method:'GET',
    url:''+vm.test,
      emulateJSON: true
    }).then(function(response){
    var dataJson=JSON.stringify(response.data)
    console.log(dataJson)
    vm.tableData=response.data
    }) 
  };
  firstData()
},
beforeUpdate() {
  var vm=this;
  function firstData(){
    vm.$http({
      method:'GET',
    url:'/asp-webapp/entities/ent_Division/findChildren/'+vm.test,
      emulateJSON: true
    }).then(function(response){
    var dataJson=JSON.stringify(response.data)
    console.log(dataJson)
    vm.tableData=response.data
    }) 
  };
  firstData()
},
阅读 7.6k
4 个回答

放在watch中

将父组件传递的属性放在watch监听函数中:
watch:{

'监听的对象名':'监听到变化后触发的事件名'

}
下边是进入同一页面根据url改变(路由地址发生变化)触发事件
同时$route对象中存在路由相关的各个参数信息,通过this.$route.query.属性名 去进行获得参数
watch: {
  // 当路由发生变化时自动请求数据,selectClassify为methods中的方法
  "$route": "selectClassify"
}

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题