カスタムJavaScript(スケッチャー)をVueコンポーネントに挿入しようとしていますが、これまでのところ運がありません。私はこのようなテンプレートに直接JavaScriptを挿入しようとすると:外部のjavascriptをVueコンポーネントに挿入する方法
<template>
<div id="sketcher">
var sketcher = new ChemDoodle.SketcherCanvas('sketcher', 400, 300);
</div>
</template>
私はエラーを取得する:「テンプレートのみUIの状態をマッピングするための責任を負わなければならない、あなたのテンプレートで副作用を持つタグを置くようにしないでください。彼らはパースされないので、 別の.jsファイルにコンポーネントを作成し、それをVueコンポーネントにインポートします。
sketcher.js:
export default ({
mounted(){
return new ChemDoodle.SketcherCanvas('sketcher', 400, 300)
}
})
Home.vue
<template>
<div id="sketcher">
<app-sketcher></app-sketcher>
</div>
</template>
<script>
import sketcher from './sketcher';
export default {
components: {
"app-sketcher": sketcher
}
}
</script>
が、私はこのエラーを取得するには: ":テンプレートまたは定義されていない機能をレンダリングコンポーネントのマウントに失敗しました"。私はこれを修正する方法や、Vueコンポーネントにjavascriptを組み込む他のオプションを提案する方法に関する提案を高く評価します。
はあなたの助けをありがとうしかし、私が手をあなたの提案を実装した後のこのエラー:[Vue警告]:マウントされたフックのエラー: "TypeError:c is undefined"が見つかりました---> src/components/Sketcher.vue at src/components/Home.vue at src/App.vue –
chemist
このエラーは発生しないはずです。あなたの 'Sketcher.vue'ファイルは私の例とまったく同じですか?そうでない場合は、おそらくそのファイルの 'mounted'フックのどこかに構文エラーがあります。 – thanksd
私の間違いを発見しました。また、インポート行に' .vue 'がありません。どうもありがとう。 – chemist