Vue.js 2.0を使用しているアプリケーションで作業しています。状態管理のためのVuex。いわゆる「ブランディング」の可能性を実装する必要があります。つまり、ユーザーはアカウントのテーマを選択する必要があります。特定の色はアプリケーションのスタイルに適用されます。Vueで変更可能なテーマ
概念の証明として実装した最初のオプションは、Vuexを使用してアプリケーションストアに目的のスタイルをオブジェクトとして格納することでした。これをVuexでオブジェクトのスタイルにバインドしましたに適用する必要があります。色を選択するためのカラーピッカーは、色を変えるために状態上の突然変異を引き起こす。これは完全にうまく動作し、それを適用する必要があるhtml要素にstyle = "$ store.state.brand"のような式を使用するだけで、使いにくくなりません。私は色を変更すると、すべてのコンポーネントを更新します。このオプションは、非常に単純であり、ユーザーがカラーピッカーから必要な色を選択できるという利点があります。しかし、複雑なスタイルをこのように実装することはできません(ホバー上の色の変更、タブやページのアクティブなクラスなど)。
2番目のオプションを試したいと思います私たちのクライアントには、ユーザーが選択できる一連の定義済みのテーマを用意することが推奨されます。これらのテーマはCSSファイルで定義されます(sass/lessなどを使用)。
ユーザーがテーマを選択したときに、プルダウンからアプリケーションのスタイルを適切なCSSファイルから読み込み、その変更を反映するようにアプリケーションをリロードするとしましょう。 Vueでこれを行う最も効率的でベストプラクティスな方法は何ですか?
あなたはsuportする必要があるブラウザに応じて、CSSカスタムプロパティを使用しないのはなぜですか? 私が使用した方法は、htmlタグに "theme-dark"クラスを追加し、html:rootを使用してカスタムテーマを保存することです。 – Antony
@Antony私は間違いなくそれをオプションでチェックします。 IEの少なくともいくつかのバージョンをサポートする必要があるだろうと私は思っています。提案していただきありがとうございます。 –