Comparing version 4.2.2 to 4.2.3
@@ -0,1 +1,11 @@ | ||
<a name="4.2.3"></a> | ||
## [4.2.3](https://github.com/kazupon/vue-i18n/compare/v4.2.2...v4.2.3) (2016-08-23) | ||
### :chart_with_upwards_trend: Performance Fixes | ||
* improve re-rendering cost when change the lang ([0707338](https://github.com/kazupon/vue-i18n/commit/0707338)) | ||
<a name="4.2.2"></a> | ||
@@ -2,0 +12,0 @@ ## [4.2.2](https://github.com/kazupon/vue-i18n/compare/v4.2.1...v4.2.2) (2016-08-15) |
/*! | ||
* vue-i18n v4.2.2 | ||
* vue-i18n v4.2.3 | ||
* (c) 2016 kazuya kawaguchi | ||
@@ -127,3 +127,14 @@ * Released under the MIT License. | ||
function Override (Vue, langVM) { | ||
function Override (Vue, langVM, version) { | ||
function update(vm) { | ||
if (version > 1) { | ||
vm.$forceUpdate(); | ||
} else { | ||
var i = vm._watchers.length; | ||
while (i--) { | ||
vm._watchers[i].update(true); // shallow updates | ||
} | ||
} | ||
} | ||
// override _init | ||
@@ -134,17 +145,11 @@ var init = Vue.prototype._init; | ||
options = options || {}; | ||
var root = options._parent || options.parent || this; | ||
var lang = root.$lang; | ||
init.call(this, options); | ||
if (lang) { | ||
this.$lang = lang; | ||
} else { | ||
if (!this.$parent) { | ||
// root | ||
this.$lang = langVM; | ||
this._langUnwatch = this.$lang.$watch('lang', function (a, b) { | ||
update(_this); | ||
}); | ||
} | ||
this._langUnwatch = this.$lang.$watch('lang', function (a, b) { | ||
update(_this); | ||
}); | ||
init.call(this, options); | ||
}; | ||
@@ -155,8 +160,8 @@ | ||
Vue.prototype._destroy = function () { | ||
if (this._langUnwatch) { | ||
if (!this.$parent && this._langUnwatch) { | ||
this._langUnwatch(); | ||
this._langUnwatch = null; | ||
this.$lang = null; | ||
} | ||
this.$lang = null; | ||
destroy.apply(this, arguments); | ||
@@ -166,9 +171,2 @@ }; | ||
function update(vm) { | ||
var i = vm._watchers.length; | ||
while (i--) { | ||
vm._watchers[i].update(true); // shallow updates | ||
} | ||
} | ||
/** | ||
@@ -224,8 +222,4 @@ * Observer | ||
return function computedGetter() { | ||
if (watcher.dirty) { | ||
watcher.evaluate(); | ||
} | ||
if (Dep.target) { | ||
watcher.depend(); | ||
} | ||
watcher.dirty && watcher.evaluate(); | ||
Dep.target && watcher.depend(); | ||
return watcher.value; | ||
@@ -852,6 +846,6 @@ }; | ||
var lang = 'en'; | ||
setupLangVM(Vue, lang); | ||
setupLangVM(Vue, lang); | ||
Asset(Vue); | ||
Override(Vue, langVM); | ||
Override(Vue, langVM, version); | ||
Config(Vue, langVM, lang); | ||
@@ -870,3 +864,3 @@ Extend(Vue); | ||
plugin.version = '4.2.2'; | ||
plugin.version = '4.2.3'; | ||
@@ -873,0 +867,0 @@ if (typeof window !== 'undefined' && window.Vue) { |
/*! | ||
* vue-i18n v4.2.2 | ||
* vue-i18n v4.2.3 | ||
* (c) 2016 kazuya kawaguchi | ||
@@ -131,3 +131,14 @@ * Released under the MIT License. | ||
function Override (Vue, langVM) { | ||
function Override (Vue, langVM, version) { | ||
function update(vm) { | ||
if (version > 1) { | ||
vm.$forceUpdate(); | ||
} else { | ||
var i = vm._watchers.length; | ||
while (i--) { | ||
vm._watchers[i].update(true); // shallow updates | ||
} | ||
} | ||
} | ||
// override _init | ||
@@ -138,17 +149,11 @@ var init = Vue.prototype._init; | ||
options = options || {}; | ||
var root = options._parent || options.parent || this; | ||
var lang = root.$lang; | ||
init.call(this, options); | ||
if (lang) { | ||
this.$lang = lang; | ||
} else { | ||
if (!this.$parent) { | ||
// root | ||
this.$lang = langVM; | ||
this._langUnwatch = this.$lang.$watch('lang', function (a, b) { | ||
update(_this); | ||
}); | ||
} | ||
this._langUnwatch = this.$lang.$watch('lang', function (a, b) { | ||
update(_this); | ||
}); | ||
init.call(this, options); | ||
}; | ||
@@ -159,8 +164,8 @@ | ||
Vue.prototype._destroy = function () { | ||
if (this._langUnwatch) { | ||
if (!this.$parent && this._langUnwatch) { | ||
this._langUnwatch(); | ||
this._langUnwatch = null; | ||
this.$lang = null; | ||
} | ||
this.$lang = null; | ||
destroy.apply(this, arguments); | ||
@@ -170,9 +175,2 @@ }; | ||
function update(vm) { | ||
var i = vm._watchers.length; | ||
while (i--) { | ||
vm._watchers[i].update(true); // shallow updates | ||
} | ||
} | ||
/** | ||
@@ -228,8 +226,4 @@ * Observer | ||
return function computedGetter() { | ||
if (watcher.dirty) { | ||
watcher.evaluate(); | ||
} | ||
if (Dep.target) { | ||
watcher.depend(); | ||
} | ||
watcher.dirty && watcher.evaluate(); | ||
Dep.target && watcher.depend(); | ||
return watcher.value; | ||
@@ -856,6 +850,6 @@ }; | ||
var lang = 'en'; | ||
setupLangVM(Vue, lang); | ||
setupLangVM(Vue, lang); | ||
Asset(Vue); | ||
Override(Vue, langVM); | ||
Override(Vue, langVM, version); | ||
Config(Vue, langVM, lang); | ||
@@ -874,3 +868,3 @@ Extend(Vue); | ||
plugin.version = '4.2.2'; | ||
plugin.version = '4.2.3'; | ||
@@ -877,0 +871,0 @@ if (typeof window !== 'undefined' && window.Vue) { |
/*! | ||
* vue-i18n v4.2.2 | ||
* vue-i18n v4.2.3 | ||
* (c) 2016 kazuya kawaguchi | ||
* Released under the MIT License. | ||
*/ | ||
!function(n,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):n.VueI18n=t()}(this,function(){"use strict";function n(n,t){window.console&&(console.warn("[vue-i18n] "+n),t&&console.warn(t.stack))}function t(t){t.locale=function(t,r,o){return void 0===r?m[t]:void(null===r?(m[t]=void 0,delete m[t]):e(t,r,function(e){e?(m[t]=e,o&&o()):n("failed set `"+t+"` locale")}))}}function e(n,t,e){var o=this;"object"===("undefined"==typeof t?"undefined":_["typeof"](t))?e(t):!function(){var n=t.call(o);"function"==typeof n?n.resolved?e(n.resolved):n.requested?n.pendingCallbacks.push(e):!function(){n.requested=!0;var t=n.pendingCallbacks=[e];n(function(e){n.resolved=e;for(var r=0,o=t.length;o>r;r++)t[r](e)},function(){e()})}():r(n)&&n.then(function(n){e(n)},function(){e()})["catch"](function(n){console.error(n),e()})}()}function r(n){return n&&"function"==typeof n.then}function o(n,t){var e=n.prototype._init;n.prototype._init=function(n){var r=this;n=n||{};var o=n._parent||n.parent||this,u=o.$lang;u?this.$lang=u:this.$lang=t,this._langUnwatch=this.$lang.$watch("lang",function(n,t){i(r)}),e.call(this,n)};var r=n.prototype._destroy;n.prototype._destroy=function(){this._langUnwatch&&(this._langUnwatch(),this._langUnwatch=null),this.$lang=null,r.apply(this,arguments)}}function i(n){for(var t=n._watchers.length;t--;)n._watchers[t].update(!0)}function u(n){if(!A){var t=n.$watch("__watcher__",function(n){});A=n._watchers[0].constructor,t()}return A}function a(n){return $||($=n._data.__ob__.dep.constructor),$}function c(n,t,e){function r(n,t){var e=new i(t,n,null,{lazy:!0});return function(){return e.dirty&&e.evaluate(),c.target&&e.depend(),e.value}}var o=n.util.bind,i=u(t),c=a(t);Object.defineProperty(n.config,"lang",{enumerable:!0,configurable:!0,get:r(function(){return t.lang},t),set:o(function(n){t.lang=n},t)}),j=e,Object.defineProperty(n.config,"fallbackLang",{enumerable:!0,configurable:!0,get:function(){return j},set:function(n){j=n}})}function l(n){function t(n){for(var t=arguments.length,r=Array(t>1?t-1:0),o=1;t>o;o++)r[o-1]=arguments[o];return 1===r.length&&"object"===_["typeof"](r[0])&&(r=r[0]),r&&r.hasOwnProperty||(r={}),n.replace(O,function(t,o,i,u){var a=void 0;return"{"===n[u-1]&&"}"===n[u+t.length]?i:(a=e(r,i)?r[i]:null,null===a||void 0===a?"":a)})}var e=n.util.hasOwn;return t}function f(n){return E.test(n)}function s(n){var t=n.charCodeAt(0),e=n.charCodeAt(n.length-1);return t!==e||34!==t&&39!==t?n:n.slice(1,-1)}function d(n){if(void 0===n)return"eof";var t=n.charCodeAt(0);switch(t){case 91:case 93:case 46:case 34:case 39:case 48:return n;case 95:case 36:return"ident";case 32:case 9:case 10:case 13:case 160:case 65279:case 8232:case 8233:return"ws"}return t>=97&&122>=t||t>=65&&90>=t?"ident":t>=49&&57>=t?"number":"else"}function v(n){var t=n.trim();return"0"===n.charAt(0)&&isNaN(n)?!1:f(t)?s(t):"*"+t}function h(n){function t(){var t=n[r+1];return o===L&&"'"===t||o===I&&'"'===t?(r++,a="\\"+t,p[C](),!0):void 0}var e=[],r=-1,o=N,i=0,u=void 0,a=void 0,c=void 0,l=void 0,f=void 0,s=void 0,h=void 0,p=[];for(p[P]=function(){void 0!==c&&(e.push(c),c=void 0)},p[C]=function(){void 0===c?c=a:c+=a},p[S]=function(){p[C](),i++},p[U]=function(){if(i>0)i--,o=z,p[C]();else{if(i=0,c=v(c),c===!1)return!1;p[P]()}};null!=o;)if(r++,u=n[r],"\\"!==u||!t()){if(l=d(u),h=D[o],f=h[l]||h["else"]||B,f===B)return;if(o=f[0],s=p[f[1]],s&&(a=f[2],a=void 0===a?u:a,s()===!1))return;if(o===Z)return e.raw=n,e}}function p(n){var t=k[n];return t||(t=h(n),t&&(k[n]=t)),t}function g(n){function t(n){if(null===n||void 0===n)return!0;if(Array.isArray(n)){if(n.length>0)return!1;if(0===n.length)return!0}else if(i(n))for(var t in n)if(u(n,t))return!1;return!0}function e(n,e){if(!o(n))return null;var r=p(e);if(t(r))return null;for(var i=r.length,u=null,a=n,c=0;i>c;){var l=a[r[c]];if(void 0===l){a=null;break}a=l,c++}return u=a}var r=n.util,o=r.isObject,i=r.isPlainObject,u=r.hasOwn;return e}function y(n){function t(){for(var t=arguments.length,e=Array(t),r=0;t>r;r++)e[r]=arguments[r];var o=n.config.lang,i=n.config.fallbackLang;return 1===e.length?c(e[0])||Array.isArray(e[0])?e=e[0]:"string"==typeof e[0]&&(o=e[0]):2===e.length&&("string"==typeof e[0]&&(o=e[0]),(c(e[1])||Array.isArray(e[1]))&&(e=e[1])),{lang:o,fallback:i,params:e}}function e(n,t,e){if(!n)return null;var r=d(n,t)||n[t];return r?e?s(r,e):r:null}function r(n,t,r,o,i){var u=null;return(u=e(n(t),o,i))?u:(u=e(n(r),o,i),u?u:null)}function o(n){return n}function i(t){return n.locale(t)}function u(n){return this.$options.locales[n]}var a=n.util,c=a.isObject,f=a.bind,s=l(n),d=g(n);return n.t=function(n){for(var e=arguments.length,u=Array(e>1?e-1:0),a=1;e>a;a++)u[a-1]=arguments[a];if(!n)return"";var c=t.apply(void 0,u),l=c.lang,f=c.fallback,s=c.params;return r(i,l,f,n,s)||o(n)},n.prototype.$t=function(n){if(!n)return"";for(var e=arguments.length,a=Array(e>1?e-1:0),c=1;e>c;c++)a[c-1]=arguments[c];var l=t.apply(void 0,a),s=l.lang,d=l.fallback,v=l.params,h=null;return this.$options.locales&&(h=r(f(u,this),s,d,n,v))?h:r(i,s,d,n,v)||o(n)},n}function b(n){var e=(arguments.length<=1||void 0===arguments[1]?{}:arguments[1],n.version&&Number(n.version.split(".")[0])||-1,"en");w(n,e),t(n),o(n,F),c(n,F,e),y(n)}function w(n,t){var e=n.config.silent;n.config.silent=!0,F||(F=new n({data:{lang:t}})),n.config.silent=e}var _={};_["typeof"]="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(n){return typeof n}:function(n){return n&&"function"==typeof Symbol&&n.constructor===Symbol?"symbol":typeof n};var m=Object.create(null),A=void 0,$=void 0,j=void 0,O=/(%|)\{([0-9a-zA-Z_]+)\}/g,k=Object.create(null),C=0,P=1,S=2,U=3,N=0,V=1,q=2,x=3,z=4,L=5,I=6,Z=7,B=8,D=[];D[N]={ws:[N],ident:[x,C],"[":[z],eof:[Z]},D[V]={ws:[V],".":[q],"[":[z],eof:[Z]},D[q]={ws:[q],ident:[x,C]},D[x]={ident:[x,C],0:[x,C],number:[x,C],ws:[V,P],".":[q,P],"[":[z,P],eof:[Z,P]},D[z]={"'":[L,C],'"':[I,C],"[":[z,S],"]":[V,U],eof:B,"else":[z,C]},D[L]={"'":[z,C],eof:B,"else":[L,C]},D[I]={'"':[z,C],eof:B,"else":[I,C]};var E=/^\s?(true|false|-?[\d\.]+|'[^']*'|"[^"]*")\s?$/,F=void 0;return b.version="4.2.2","undefined"!=typeof window&&window.Vue&&window.Vue.use(b),b}); | ||
!function(n,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):n.VueI18n=t()}(this,function(){"use strict";function n(n,t){window.console&&(console.warn("[vue-i18n] "+n),t&&console.warn(t.stack))}function t(t){t.locale=function(t,r,o){return void 0===r?_[t]:void(null===r?(_[t]=void 0,delete _[t]):e(t,r,function(e){e?(_[t]=e,o&&o()):n("failed set `"+t+"` locale")}))}}function e(n,t,e){var o=this;"object"===("undefined"==typeof t?"undefined":w["typeof"](t))?e(t):!function(){var n=t.call(o);"function"==typeof n?n.resolved?e(n.resolved):n.requested?n.pendingCallbacks.push(e):!function(){n.requested=!0;var t=n.pendingCallbacks=[e];n(function(e){n.resolved=e;for(var r=0,o=t.length;o>r;r++)t[r](e)},function(){e()})}():r(n)&&n.then(function(n){e(n)},function(){e()})["catch"](function(n){console.error(n),e()})}()}function r(n){return n&&"function"==typeof n.then}function o(n,t,e){function r(n){if(e>1)n.$forceUpdate();else for(var t=n._watchers.length;t--;)n._watchers[t].update(!0)}var o=n.prototype._init;n.prototype._init=function(n){var e=this;o.call(this,n),this.$parent||(this.$lang=t,this._langUnwatch=this.$lang.$watch("lang",function(n,t){r(e)}))};var i=n.prototype._destroy;n.prototype._destroy=function(){!this.$parent&&this._langUnwatch&&(this._langUnwatch(),this._langUnwatch=null,this.$lang=null),i.apply(this,arguments)}}function i(n){if(!m){var t=n.$watch("__watcher__",function(n){});m=n._watchers[0].constructor,t()}return m}function u(n){return A||(A=n._data.__ob__.dep.constructor),A}function a(n,t,e){function r(n,t){var e=new a(t,n,null,{lazy:!0});return function(){return e.dirty&&e.evaluate(),c.target&&e.depend(),e.value}}var o=n.util.bind,a=i(t),c=u(t);Object.defineProperty(n.config,"lang",{enumerable:!0,configurable:!0,get:r(function(){return t.lang},t),set:o(function(n){t.lang=n},t)}),$=e,Object.defineProperty(n.config,"fallbackLang",{enumerable:!0,configurable:!0,get:function(){return $},set:function(n){$=n}})}function c(n){function t(n){for(var t=arguments.length,r=Array(t>1?t-1:0),o=1;t>o;o++)r[o-1]=arguments[o];return 1===r.length&&"object"===w["typeof"](r[0])&&(r=r[0]),r&&r.hasOwnProperty||(r={}),n.replace(j,function(t,o,i,u){var a=void 0;return"{"===n[u-1]&&"}"===n[u+t.length]?i:(a=e(r,i)?r[i]:null,null===a||void 0===a?"":a)})}var e=n.util.hasOwn;return t}function f(n){return D.test(n)}function l(n){var t=n.charCodeAt(0),e=n.charCodeAt(n.length-1);return t!==e||34!==t&&39!==t?n:n.slice(1,-1)}function s(n){if(void 0===n)return"eof";var t=n.charCodeAt(0);switch(t){case 91:case 93:case 46:case 34:case 39:case 48:return n;case 95:case 36:return"ident";case 32:case 9:case 10:case 13:case 160:case 65279:case 8232:case 8233:return"ws"}return t>=97&&122>=t||t>=65&&90>=t?"ident":t>=49&&57>=t?"number":"else"}function d(n){var t=n.trim();return"0"===n.charAt(0)&&isNaN(n)?!1:f(t)?l(t):"*"+t}function v(n){function t(){var t=n[r+1];return o===z&&"'"===t||o===L&&'"'===t?(r++,a="\\"+t,p[k](),!0):void 0}var e=[],r=-1,o=S,i=0,u=void 0,a=void 0,c=void 0,f=void 0,l=void 0,v=void 0,h=void 0,p=[];for(p[C]=function(){void 0!==c&&(e.push(c),c=void 0)},p[k]=function(){void 0===c?c=a:c+=a},p[U]=function(){p[k](),i++},p[P]=function(){if(i>0)i--,o=x,p[k]();else{if(i=0,c=d(c),c===!1)return!1;p[C]()}};null!=o;)if(r++,u=n[r],"\\"!==u||!t()){if(f=s(u),h=B[o],l=h[f]||h["else"]||Z,l===Z)return;if(o=l[0],v=p[l[1]],v&&(a=l[2],a=void 0===a?u:a,v()===!1))return;if(o===I)return e.raw=n,e}}function h(n){var t=O[n];return t||(t=v(n),t&&(O[n]=t)),t}function p(n){function t(n){if(null===n||void 0===n)return!0;if(Array.isArray(n)){if(n.length>0)return!1;if(0===n.length)return!0}else if(i(n))for(var t in n)if(u(n,t))return!1;return!0}function e(n,e){if(!o(n))return null;var r=h(e);if(t(r))return null;for(var i=r.length,u=null,a=n,c=0;i>c;){var f=a[r[c]];if(void 0===f){a=null;break}a=f,c++}return u=a}var r=n.util,o=r.isObject,i=r.isPlainObject,u=r.hasOwn;return e}function g(n){function t(){for(var t=arguments.length,e=Array(t),r=0;t>r;r++)e[r]=arguments[r];var o=n.config.lang,i=n.config.fallbackLang;return 1===e.length?f(e[0])||Array.isArray(e[0])?e=e[0]:"string"==typeof e[0]&&(o=e[0]):2===e.length&&("string"==typeof e[0]&&(o=e[0]),(f(e[1])||Array.isArray(e[1]))&&(e=e[1])),{lang:o,fallback:i,params:e}}function e(n,t,e){if(!n)return null;var r=d(n,t)||n[t];return r?e?s(r,e):r:null}function r(n,t,r,o,i){var u=null;return(u=e(n(t),o,i))?u:(u=e(n(r),o,i),u?u:null)}function o(n){return n}function i(t){return n.locale(t)}function u(n){return this.$options.locales[n]}var a=n.util,f=a.isObject,l=a.bind,s=c(n),d=p(n);return n.t=function(n){for(var e=arguments.length,u=Array(e>1?e-1:0),a=1;e>a;a++)u[a-1]=arguments[a];if(!n)return"";var c=t.apply(void 0,u),f=c.lang,l=c.fallback,s=c.params;return r(i,f,l,n,s)||o(n)},n.prototype.$t=function(n){if(!n)return"";for(var e=arguments.length,a=Array(e>1?e-1:0),c=1;e>c;c++)a[c-1]=arguments[c];var f=t.apply(void 0,a),s=f.lang,d=f.fallback,v=f.params,h=null;return this.$options.locales&&(h=r(l(u,this),s,d,n,v))?h:r(i,s,d,n,v)||o(n)},n}function y(n){var e=(arguments.length<=1||void 0===arguments[1]?{}:arguments[1],n.version&&Number(n.version.split(".")[0])||-1),r="en";b(n,r),t(n),o(n,E,e),a(n,E,r),g(n)}function b(n,t){var e=n.config.silent;n.config.silent=!0,E||(E=new n({data:{lang:t}})),n.config.silent=e}var w={};w["typeof"]="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(n){return typeof n}:function(n){return n&&"function"==typeof Symbol&&n.constructor===Symbol?"symbol":typeof n};var _=Object.create(null),m=void 0,A=void 0,$=void 0,j=/(%|)\{([0-9a-zA-Z_]+)\}/g,O=Object.create(null),k=0,C=1,U=2,P=3,S=0,N=1,V=2,q=3,x=4,z=5,L=6,I=7,Z=8,B=[];B[S]={ws:[S],ident:[q,k],"[":[x],eof:[I]},B[N]={ws:[N],".":[V],"[":[x],eof:[I]},B[V]={ws:[V],ident:[q,k]},B[q]={ident:[q,k],0:[q,k],number:[q,k],ws:[N,C],".":[V,C],"[":[x,C],eof:[I,C]},B[x]={"'":[z,k],'"':[L,k],"[":[x,U],"]":[N,P],eof:Z,"else":[x,k]},B[z]={"'":[x,k],eof:Z,"else":[z,k]},B[L]={'"':[x,k],eof:Z,"else":[L,k]};var D=/^\s?(true|false|-?[\d\.]+|'[^']*'|"[^"]*")\s?$/,E=void 0;return y.version="4.2.3","undefined"!=typeof window&&window.Vue&&window.Vue.use(y),y}); |
{ | ||
"name": "vue-i18n", | ||
"description": "Internationalization plugin for Vue.js", | ||
"version": "4.2.2", | ||
"version": "4.2.3", | ||
"author": { | ||
@@ -6,0 +6,0 @@ "name": "kazuya kawaguchi", |
@@ -16,8 +16,4 @@ import { getWatcher, getDep } from './observer' | ||
return function computedGetter () { | ||
if (watcher.dirty) { | ||
watcher.evaluate() | ||
} | ||
if (Dep.target) { | ||
watcher.depend() | ||
} | ||
watcher.dirty && watcher.evaluate() | ||
Dep.target && watcher.depend() | ||
return watcher.value | ||
@@ -24,0 +20,0 @@ } |
@@ -33,6 +33,6 @@ import warn from './warn' | ||
const lang = 'en' | ||
setupLangVM(Vue, lang) | ||
setupLangVM(Vue, lang) | ||
Asset(Vue) | ||
Override(Vue, langVM) | ||
Override(Vue, langVM, version) | ||
Config(Vue, langVM, lang) | ||
@@ -46,3 +46,3 @@ Extend(Vue) | ||
if (!langVM) { | ||
langVM = new Vue({ data: { lang: lang } }) | ||
langVM = new Vue({ data: { lang } }) | ||
} | ||
@@ -52,3 +52,3 @@ Vue.config.silent = silent | ||
plugin.version = '4.2.2' | ||
plugin.version = '4.2.3' | ||
@@ -55,0 +55,0 @@ export default plugin |
@@ -1,20 +0,24 @@ | ||
export default function (Vue, langVM) { | ||
export default function (Vue, langVM, version) { | ||
function update (vm) { | ||
if (version > 1) { | ||
vm.$forceUpdate() | ||
} else { | ||
let i = vm._watchers.length | ||
while (i--) { | ||
vm._watchers[i].update(true) // shallow updates | ||
} | ||
} | ||
} | ||
// override _init | ||
const init = Vue.prototype._init | ||
Vue.prototype._init = function (options) { | ||
options = options || {} | ||
const root = options._parent || options.parent || this | ||
const lang = root.$lang | ||
init.call(this, options) | ||
if (lang) { | ||
this.$lang = lang | ||
} else { | ||
if (!this.$parent) { // root | ||
this.$lang = langVM | ||
this._langUnwatch = this.$lang.$watch('lang', (a, b) => { | ||
update(this) | ||
}) | ||
} | ||
this._langUnwatch = this.$lang.$watch('lang', (a, b) => { | ||
update(this) | ||
}) | ||
init.call(this, options) | ||
} | ||
@@ -25,17 +29,10 @@ | ||
Vue.prototype._destroy = function () { | ||
if (this._langUnwatch) { | ||
if (!this.$parent && this._langUnwatch) { | ||
this._langUnwatch() | ||
this._langUnwatch = null | ||
this.$lang = null | ||
} | ||
this.$lang = null | ||
destroy.apply(this, arguments) | ||
} | ||
} | ||
function update (vm) { | ||
let i = vm._watchers.length | ||
while (i--) { | ||
vm._watchers[i].update(true) // shallow updates | ||
} | ||
} |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
70754
2120