ホームページ > ウェブフロントエンド > jsチュートリアル > Vue の render 関数はどのような状況で使用するのに適していますか?

Vue の render 関数はどのような状況で使用するのに適していますか?

不言
リリース: 2018-10-11 17:17:07
転載
4182 人が閲覧しました

この記事では、vue の render 関数がどのような状況で使用するのに適しているかについて説明します。困っている友人は参考にしていただければ幸いです。

レンダリング関数

vue はテンプレートを通じて HTML を作成します。ただし、特殊な場合には、このハードコードされたモデルではニーズを満たすことができず、JS プログラミング機能が必要になります。この時点で、レンダリングを使用して HTML を作成する必要があります。

レンダリング関数を使用するのが適切なのはどのような場合ですか?

一般的なボタン コンポーネントのセットを一度にカプセル化するプロセスでは、ボタンには 4 つのスタイルがあります (成功、エラー、警告、デフォルト)。まず、次のような実装が考えられます。

  <div class="btn btn-success" v-if="type === &#39;success&#39;">{{ text }}</div>
  <div class="btn btn-danger" v-else-if="type === &#39;danger&#39;">{{ text }}</div>
  <div class="btn btn-warning" v-else-if="type === &#39;warning&#39;">{{ text }}</div>
ログイン後にコピー

ボタン スタイルが少ない場合はまったく問題ありませんが、ボタン スタイルが 10 個以上必要な場合を想像してください。そうなると、ハードコーディングされたテンプレート方式は非常に弱いように思えます。このような状況では、render 関数を使用するのが最良の選択であると言えます。

ボタンコンポーネントを実際の状況に合わせて書き換えます

まず、render関数で生成された内容はテンプレートの内容と同等です。 render 関数を使用する場合は、まずそれを .vue ファイルに配置し、テンプレート タグを削除する必要があります。論理層だけが残ります。

export default {
  props: {
    type: {
      type: String,
      default: &#39;normal&#39;
    },
    text: {
      type: String,
      default: &#39;normal&#39;
    }
  },
  computed: {
    tag() {
      switch (this.type) {
        case &#39;success&#39;:
          return 1;
        case &#39;danger&#39;:
          return 2;
        case &#39;warning&#39;:
          return 3;
        default:
          return 1;
      }
    }
  },
  render(h) {
    return h(&#39;p&#39;, {
      class: {
        btn: true,
        &#39;btn-success&#39;: this.type === &#39;success&#39;,
        &#39;btn-danger&#39;: this.type === &#39;danger&#39;,
        &#39;btn-warning&#39;: this.type === &#39;warning&#39;
      },
      domProps: {
        innerText: this.text
      },
      on: {
        click: this.handleClick
      }
    });
  },
  methods: {
    handleClick() {
      console.log(&#39;-----------------------&#39;);
      console.log(&#39;do something&#39;);
    }
  }
};
ログイン後にコピー

コンポーネントベースの考え方によれば、抽象化できるものはロジックでハードコードされることはありません。ここの clickHandle 関数はボタンの種類に応じて異なるロジックをトリガーできるため、詳細は説明しません。

次に、親コンポーネントを呼び出します

<Button type="danger" text="test"></Button>
ログイン後にコピー

Use jsxx

はい、各パラメーターの型と同じ使用法を覚えて、パラメーターを渡します注文 本当に面倒です。次に、実際に jsx を使用して、この退屈なプロセスを最適化できます。

rree

以上がVue の render 関数はどのような状況で使用するのに適していますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:segmentfault.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート