我想在我的 Vue 应用程序中添加一些“功能切换机制”。虽然我已经实现了一个相当基本的设置,但我想考虑一下Pete Hodgson 在这篇文章中描述的技术。尤其是“决策反转”方面看起来很有意义,但我正在努力了解如何使其适应我的 Vue 应用程序。
这就是我到目前为止所拥有的。
配置.js
const yn = require("yn");
const config = {
// Add new feature toggles here
features: {
myFeature: parse(
window.myaEnv.myFeature || process.env.VUE_APP_MY_FEATURE,
false
),
},
};
function parse(value, fallback) {
if (typeof value === "undefined") {
return fallback;
}
switch (typeof fallback) {
case "boolean":
return yn(value);
case "number":
return value ? JSON.parse(value) : fallback;
default:
return value;
}
}
function feature(name) {
return config.features[name];
}
export { config };
export default {
install(Vue) {
Vue.appConfig = config;
Vue.feature = feature;
Vue.prototype.$appConfig = config;
Vue.prototype.$feature = feature;
},
};
然后在例如一个组件中,我像这样切换可见性:
b-button(v-if="this.$feature('myFeature')") I'm visible only if feature is enabled
虽然这是一个非常基本的示例,但我可以想象功能切换可能会变得更加复杂,难以像这样处理。
如何应用所描述的功能切换技术?