以前 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 サービスを完全にアンインストールする方法
構文フォーマット: row_number() over(partition by grouping ...
2日前、ダブル11ショッピングフェスティバルを利用して、Alibaba CloudでECS(サーバー...
指令とは何ですか? Angular と Vue はどちらもディレクティブの概念を持っており、これは通...
はじめに<br />誰もが高速インターネット接続にアクセスできるわけではありません。たと...
MySQL のメンテナンスを容易にするために、エラー情報を収集するためのインターフェースを提供するス...
この記事の例では、コンピュータカメラを呼び出して写真機能を実現するためのvueの具体的なコードを参考...
シナリオ 1:半透明の境界線を実現するには: CSS スタイルのデフォルトの動作により、背景色はコン...
使用する仮想マシンは、サーバー環境をシミュレートする CentOS 8.4 です。外部ネットワークに...
この記事で説明する等高レイアウトでは、純粋な CSS を使用して、要素の高さを手動で設定することなく...
<tr> <th width="12%">あああ<...
色はウェブサイト訪問者に影響を与えますか?数年前までは、ウェブサイトはまだ贅沢品でしたが、今ではほと...
1. まず、よく使われるMySQL関数をいくつか紹介しますRAND() は 0 から 1 (0<...
Linux パーティションでよく使用されるコマンド: fdisk、MBR パーティション テーブルの...
最近、Vue プロジェクトについて知り、ElementUI でデータを xlsx および Excel...
1. スタイルオブジェクトスタイル オブジェクトは単一のスタイル宣言を表し、スタイルが適用されている...