我当时想的是用vue组件内的路由钩子函数beforRouterEnter
在index文件里用`
beforeRouteEnter(to, from, next){
next(vm=>{
vm.message=store.state.user.searchInput;
});
},
查询函数里修改store里绑定的index页面输入框的值 this.setSearchInput(this.message)
在进入路由的组件的时候就获取store里面存储的值,就可以实时展现在两个输入框里,前面一个输入框值改变,后面一个输入框的值也同时改变,这两个值其实是同一个store的值,只是绑定在两个input输入框里,之前无法实时拿到值是store里的值其实已经改变了,但是页面上没有拿到,之前我用beforouterEnter是想在一进入页面的时候通过VM对象提前拿到store里面已经改变的值,这样就可以页面跟store同步了,有时候是会遇到这种两个组件共用一个值的时候store更新了,但是两个组件的值却无法保持一定的同步。但是平时只控制一个组件内的值是可以实时拿到更新的值的。
在顶部tab里有search路由,在searckh组件里同样的方法使用beforeRouterEnter进入之前取store里面已经改变的值
beforeRouteEnter(to, from, next) {
next(vm => {
vm.bankname = store.state.user.searchInput;
vm.tabalData.productName = store.state.user.searchInput; //获取值
vm.getAppTableDataInfo(vm.tabalData);//获取页面查询的展示结果数据
vm.getBankList();//调用接口方法渲染页面
vm.articleDetailsList();//调用接口方法渲染页面
});
同样在search页面的查询点击事件函数里修改store里绑定的search页面输入框的值 this.setSearchInput(this.bankname);
这样两个页面在点查询的时候都可以相互的实时更新值