防止组件出现敏感词,国际化出现其他词条,i18n在封装
面向切面编程
- 面向切面编程(AOP)是java常用编程思想,它的作用是在某个函数上进行切割,可以在函数执行前/中/后添加其他逻辑代码。
AOP编程的好处是遵循单一原则,不会修改原函数内部的代码就可以改变原函数的逻辑。
js中实现AOP使用protoType原型链
例如下面代码
export default {
install(Vue) {
Vue.prototype.$t = function(key) {
var values = [],
len = arguments.length - 1;
while (len-- > 0) values[len] = arguments[len + 1];
var i18n = this.$i18n;
//国际化词条校验
if (key !== i18n._t.apply(i18n, [key, i18n.locale, i18n._getMessages(), this].concat(values))) {
var rule = new RegExp(正则规则, 'g').test(i18n._t.apply(i18n, [key, i18n.locale, i18n._getMessages(), this].concat(values)));
return rule ? ' ' : i18n._t.apply(i18n, [key, i18n.locale, i18n._getMessages(), this].concat(values));
} else {
return i18n._t.apply(i18n, [key, i18n.locale, i18n._getMessages(), this].concat(values));
}
};
}
};