以前 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 サービスを完全にアンインストールする方法
目次背景DHCPの設定DHCP ファイル (動的ホスト構成プロトコル) の編集tftp 設定sysl...
誰もがピンボールやレンガ崩しのゲームをプレイしたことがあるでしょう。左と右のキーを使用して、下にある...
目次概要環境の準備プロジェクトのパフォーマンスに影響を与える要因遅延読み込みとは何ですか?プロジェク...
1. 最左プレフィックス原則 - 複数の列にインデックスが付けられている場合は、最左プレフィックス原...
現在のデータベースでサポートされているエンジンを表示します エンジンを表示 +-----------...
Js での 2 次元配列の作成:まず、JavaScript は 1 次元配列のみをサポートしています...
この記事では、ボトムクエリ機能を実装するためのVueの具体的なコードを例として紹介します。具体的な内...
Fuser コマンドとは何ですか? fuser コマンドは、特定のファイル、ディレクトリ、またはソケ...
1.sshコマンドLinux では、ssh コマンドを使用して別のサーバーにログインできます。 2 ...
1. Eコマースアイコン2. アイコンスイーツ2 3. 携帯電話アイコンパック4. 旗アイコンセット...
目次序文アイデアの起動速度Tomcat ログが文字化けしている序文Idea を再インストールしたので...
あなたはこの質問について考えたことがあるでしょうか?デュアルアクティブが構成されている場合、データル...
等高レイアウト同じ親コンテナー内の同じ高さの子要素のレイアウトを指します。等高レイアウトの実装の観点...
コンポーネントの基本1 コンポーネントの再利用コンポーネントは再利用可能な Vue インスタンスです...
目次構成解析サービス構築ディレクトリ構造ファイルを作成インスタンス構成サービスを開始するテストRed...