Interception people think
1, axios request response blocker
// add request interceptor axios.interceptors.request.use (function (config) { // do something before sending a request return config; }, function (error) { // do something to request error return Promise.reject (error); }); // add response blocker axios.interceptors.response.use (function (response) { // do something response data return response; }, function (error) { // do error response something return Promise.reject (error); });
2, axios the configuration and transformResponse transformRequest
// `transformRequest` allowed before sending to the server, the data modification request // only be used in a 'PUT', 'POST' and 'PATCH' request method several functions // later in the array must return a string, or an ArrayBuffer, or Stream transformRequest: [function (data) { // perform any data conversion processing of return data; }], // `transformResponse` in the transmission before then / catch to allow to modify the response data transformResponse: [function (data ) { // perform any data conversion processing of return data; }],
3、Object.defineProperty(object, propertyName, {})
Object.defineProperty(obj, key, { get(){ Dep.target && dep.addDep(Dep.target); return val; }, set(newVal){ if(newVal === val){ return; } val = newVal; dep.notify(); } })
4, the interior of the class and get SET, intercept access attribute behavior
class MyClass { constructor() { // ... } get prop() { return 'getter'; } set prop(value) { console.log('setter: '+value); }}
reference: