5
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

VuejsのGUIジェネレーターを改良した話

Last updated at Posted at 2019-04-13

はじめに

作成中のGUIジェネレータを改良した。

改良点

vuetify 以外のコンポーネントフレームワークを利用可能にした

任意の css と javascript を読み込めるようにしたため好きなフレームワークを利用できるようになった。

change_lib.gif

プロジェクトデータの保存と読み込みを可能にした

作成中のプロジェクトをjsonファイルでダウンロードできるようにし、ファイルを読み込むことで保存した状態を再現できるようにした。

project_export.gif

任意のインラインスクリプトを挿入できるようにした

Vue.use(plugin)

などが書けるようにすることが目的

inline.gif

技術的な話

iframeのリロード

スクリプトを読み直したりしたときはiframeをリロードしないといけないが以下のような感じで書けた

private reload() {
  const ele = obtainIframe();
  ele.onload = () => {
    // 必要な処理
  };
  ele.contentWindow.location.reload();
}

インラインスクリプトが更新された時もリロードするが、イベントの間引きがしたかった。
_.debounce を使おうと思っていたが、https://github.com/duxiaofeng-github/typescript-debounce-decorator が使いやすくてよかった。

こんな感じで使える。

@debounce(500, { leading: false })
private reload() {
}

類似ツール

今回の更新中に見つけた。

  • PreVue
    • 完全に使い方を理解していないが目的が異なるようなイメージを持った

終わりに

今後やりたいこと。

  • 追加したい機能
    • 複数ページへの対応 (vue-routerで)
    • attribute の型指定
  • 機能以外で対応したいこと
    • リファクタリング
    • CI・CDの導入
5
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?