簡體   English   中英

VueJS 中的功能切換

[英]Feature toggles in VueJS

我想在我的 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

雖然這是一個非常基本的示例,但我可以想象像這樣處理功能切換可能會變得更加復雜。

如何應用所描述的功能切換技術?

你檢查過這個 Vue 插件了嗎: https://www.npmjs.com/package/vue-feature-toggle

它對我來說看起來很有希望,並且可以幫助您實現目標。

注意:我將在接下來的幾個月內在 VueJS 中實現功能切換,因此仍在研究最佳方法。

更新:在我的例子中,我無法使用 vue-feature-toggle 庫按預期工作,所以我構建了一個自定義解決方案 - 保留功能切換,並與 function isFeatureToggled(featureToggleKey)混合

您也可以考慮將Unleashvue-unleash-plugin一起使用。 這個插件需要你的項目使用 Vuex。

PS,我是 Unleash 的作者。 歡迎任何關於我們如何簡化與 Vue 集成的反饋。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM