目前我这边的解决方法是使用string-replace-loader将vendor.js里的getVmData方法替换成:
function getVmData (vm) {
var res = getVmData_old( vm );
if ( !vm.$dataPropLocked ) {
console.log("no dplock!");
return res;
}
var locked = vm.$dataPropLocked();
//console.log("====getVmData====", Object.keys(res), vm);
if (!!locked){
locked.forEach( function( key ) {
if (!!res[key]) {
console.log("getVmData remove key: ", key);
delete res[key];
}
});
}
return res;
}
原理就是当光标进入输入框的时候,给绑定的数据加上锁,页面数据刷新的时候就去掉该数据的动态刷新,再光标离开的时候再将绑定的数据解锁,同时将输入框的数据赋值给属性, 这样可以完美的解决问题