javascript - VueJS 中的功能切换

标签 javascript vue.js featuretoggle

我想向我的 Vue 应用程序添加一些“功能切换机制”。虽然我已经实现了相当基本的设置,但我想考虑此 article by Pete Hodgson 中描述的技术。 。特别是“决策反转”方面看起来很有意义,但我正在努力了解如何使其适应我的 Vue 应用程序。

这就是我到目前为止所拥有的。

config.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

虽然这是一个非常基本的示例,但我可以想象,像这样处理功能切换可能会变得更加复杂。

如何应用所描述的功能切换技术?

最佳答案

您也可以考虑使用Unleashvue-unleash-plugin 一起。该插件要求您的项目使用 Vuex。

PS!我是 Unleash 的作者,欢迎任何有关我们如何简化与 Vue 集成的反馈。

关于javascript - VueJS 中的功能切换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63499297/

相关文章:

javascript - getElementsByClassName 不返回长度

laravel - 在 laravel + Vuejs 中缓存或保存 api 响应数据的理想方式是什么?

reactjs - 我可以使用 React 路由器创建别名路由吗?

testing - 在持续集成中运行的测试中应该如何设置功能切换?

wordpress - 向 Wordpress 添加全局设置(功能切换)

javascript - 删除然后将相同的元素添加到 Packery JS

javascript - Vue.js - 同类的两个组件无法正确切换

javascript - 两个单选按钮共享一个 "id"?

linux - Laravel-mix 没有构建通知

javascript - 将 .NET Core 环境传递给 React.JS 应用程序