私はVue.jsアプリケーションで複雑なビジュアライゼーションを作成するためにd3.jsプラグインを使用しています。 d3プラグインによって追加された要素にカスタムvueディレクティブを適用したいと思います。
vue2で廃止された$コンパイル機能は、私が探しているものです。DOM要素をVue.jsコンポーネントに変換
domからvueコンポーネントの要素を動的に変更するにはどうすればよいですか?
私はVue.jsアプリケーションで複雑なビジュアライゼーションを作成するためにd3.jsプラグインを使用しています。 d3プラグインによって追加された要素にカスタムvueディレクティブを適用したいと思います。
vue2で廃止された$コンパイル機能は、私が探しているものです。DOM要素をVue.jsコンポーネントに変換
domからvueコンポーネントの要素を動的に変更するにはどうすればよいですか?
お探しの物件は$mounted
です。キーmounted
に機能を提供すると、d3の視覚化をインスタンス化できます。
<template>
<svg width="500" height="300"></svg>
</template>
<script>
const d3 = require('d3');
export default {
mounted: function() {
// this.#el - is the root element in <template>
// in this case it is <svg> tag
d3.select(this.$el)
.append('circle')
.attr('cx', '250')
.attr('cy', '150')
.attr('r', '100')
}
}
</script>
あなたのお返事ありがとうございますが、それは私が探しているものではありません。私はすでにマウントされた関数のすべてのd3要素を追加しました。今度は、追加されたアイテムを取り出し、それらをvueエレメントに変更したいと思います。上の例では、 "円"にvue指示を追加したいと考えています。 – brenzy
'動的に要素を変更する'私は十分にはっきりしていません。 vue.js + d3.jsを使ってインタラクティブなビジュアライゼーションを作成したいと思っていますか?次の例をご覧ください:https://corpglory.github.io/d3vue/#/pie-chart-local-component?これは基本的なマウント>時計>更新 – xNok
私は既にd3とvue.jsと対話型の視覚化を持っています。これはプロパティの変更に基づいて再描画できます。これらすべての例では、d3によって作成された要素のいずれもvueバインディングを持たず、属性の更新はすべてd3コードによって行われます。 – brenzy
は[Vue.compile(https://vuejs.org/v2/api/#Vue-compile)まだ使用可能である:上記のリンクから
$mounted
のThis is a good set of example
基礎しかし、DOMに現在ある要素ではなく文字列が必要です。 d3の追加要素を削除して文字列に変換し、おそらくVue.compileを使用してゲームをプレイすることもできますが、それはハックです。これ以上知らなければ、これは答えるのが難しいです。 – Bert
@Bert、ご意見ありがとうございます。私はそれを考えていたか、またはこのようなドームのような影を作ることがこのコードで行われました。私はこれらのソリューションを拒否しました。私は、レンダリングの副作用が多種多様になると思います。 「もっと知っている」という点で、他の詳細は何ですか? – brenzy
Vueは常にレンダリング関数にコンパイルされるため、d3レンダリングを行うと、2度レンダリングされます。既存のDOMを拡張するものではありません。伝統的に、これらの種類のライブラリを使用すると、VueはDOMをレンダリングし、ライブラリで拡張できます。 – Bert