以前 HTML を解析したことがあるので、今日は Vue ドラッグ アンド ドロップを使用して、Kuai Station と同様の自動コード生成を実現したいと思います。その結果、Vue の v-html は XSS 攻撃を防ぐために HTML しか解析できないため、以前はドラッグ コンポーネントを解析できないという問題に遭遇しました。 アイデアまず、左、中央、右の3つの部分に分かれたシンプルなページを実装します。左側はドラッグする必要があるコンポーネント、中央はコンポーネントの配置と表示に使用され、右側は解析されたコードです。 左側のコンポーネントリストコード <div ref="テスト"> <one-component :title="title[0]" element="<el-radio v-model='radio' label='1'>代替オプション</el-radio>"> <el-radio slot="component" v-model="radio" label="1">オプション</el-radio> </1 つのコンポーネント> </div> </テンプレート> <スクリプト> '../components/oneComponent' から OneComponent をインポートします。 エクスポートデフォルト{ 名前: ''、 データ() { 戻る { ラジオ: '2', タイトル: ['ラジオシングルチェックボックス'] } }, コンポーネント:{ ワンコンポーネント }, } </スクリプト> <style lang="stylus" スコープ> </スタイル> 中間コンポーネント表示コード <div class="all"> <el-form label-width="80px" label-position="left" :model="ruleForm" :rules="rules"> <el-form-item label="シミュレートされた幅" prop="inputW"> <el-input v-model="ruleForm.inputW" placeholder="幅を入力してください"></el-input> </el-form-item> <el-form-item label="シミュレーションの高さ" prop="inputH"> <el-input v-model="ruleForm.inputH" placeholder="身長を入力してください"></el-input> </el-form-item> </el-form> <変数ボックス クラス="ボックス" :width="ruleForm.inputW" :height="ruleForm.inputH" </変数ボックス> </div> </テンプレート> <スクリプト> 「../components/Variablebox」からVariableboxをインポートします。 エクスポートデフォルト{ 名前: ""、 データ() { var checkSize = (ルール, 値, コールバック) => { console.log(値); (値 < 500 || 値 > 1000)の場合 { callback(new Error("500 から 1000 の間の数値が推奨されます")); } そうでない場合 (!Number.isInteger(Number(value))) { callback(new Error("数値を入力してください")); } それ以外 { 折り返し電話(); } }; 戻る { ルールフォーム: { 入力W: 500, 入力H: 500 }, ルール: inputW: [{ バリデータ: checkSize, トリガー: "blur" }], inputH: [{ バリデータ: checkSize, トリガー: "blur" }] } }; }, メソッド: { }, コンポーネント: 変数ボックス } }; </スクリプト> <style lang="stylus" スコープ> 。全て パディング: 0 20px ディスプレイ: フレックス フレックス方向: 列 </スタイル> 次に、ドラッグアンドドロップを使用してコンポーネントのドラッグを実装し、Variableboxページにコンポーネントを表示します。 v-htmlの使用が失敗した後、Baiduで検索したところ、基本的にはvue.Vue.compile( template )を使用してレンダリングすることを呼び出していることがわかりましたが、例はありませんでした。 compileはテンプレート文字列をrender関数にコンパイルします。つまりrenderは最終的にcreateElementを呼び出してHTMLに変換しますが、直接レンダリングします。 新しいVue({ // el: '#app' テンプレート: this.ele, データ:{ ラジオ: '2' }, }).$mount("#apps"); これにより、問題は一時的に解決されます。 v-html を使用して vue でタグをレンダリングする表示のためにページにレンダリングする必要があるラベル コンテンツを含む背景データを取得します。最終的な効果は次のようになります: グラフィックとテキストのレイアウト 1. まずデータを取得し、個別に処理する 2. HTMLで出力します 以下もご興味があるかもしれません:
|
<<: 正の整数かどうかを判断するMYSQLカスタム関数の例コード
>>: Win7 で IIS7 Web および FTP サービスを完全にアンインストールする方法
目次1. proxy と Object.defineProperty の利点2. プロキシ監視オブジ...
目次01 YAMLファイルの概要YAML---キー値型YAML---リスト型02 K8Sにおけるマス...
序文ファイルのコピーによってハードドライブのスペースが大量に浪費され、ファイルを更新するときに混乱が...
序文モバイル デバイスでは、帯域幅とプロセッサ速度の制限により、Web ページのパフォーマンスに対す...
tomcat はオープンソースの Web サーバーです。Tomcat ベースの Web は実行効率...
目次導入1. 異食症2. レナ3. コンプレッサー4. ファブリック5. ぼかす6. 画像を結合する...
コードをコピーコードは次のとおりです。 window.location.href="zcb...
1. スクロールスナップはフロントエンド開発者にとって必須のスキルですCSS スクロール スナップは...
マウスをホバーすると画像が折りたたまれる効果を実現する CSS 1. 実施のポイント折り畳みは複数の...
この記事では、カスタムポップアップボックスを実装するためのJavaScriptシングルトンモードの具...
Web サーバーは、独立したドメイン名を持つ複数の Web サイトを構築できるほか、通信経路上のトラ...
目次1. デザインパターンとは何ですか? 2. デザインパターンの5つの設計原則(SOLID) 3....
1. はじめにデータベース内のデータ量が一定レベルに達すると、システムパフォーマンスのボトルネックを...
MySQL では、ユーザーに付与された権限をどのように確認しますか? ユーザーに付与される権限は、グ...
目次1. 円を描く2. マウスで動かした円3. マウスでドラッグした粒子4. カラーグラデーション粒...