Vue.jsサンプルコード(19)文字をクリックすると編集できるようにする

19. 文字をクリックすると編集できるようにする

  • Vue.jsバージョン: 2.5.2
  • 「クリックして編集」をクリックすると文字を変更できます。
  • Enterを入力するか、他の場所をクリックするなどでフォーカスを移動すると入力が終了します。
  • 変更した文字は、入力が終わっても変わりません。
  • 画面をリロードすると最初の状態に戻ります。

サンプルコード

HTML側でvのtrue/falseを判定しています。

  <template v-if="f">
    <input v-model="v" @keyup.enter="f = false" @blur="f = false" ref="r1" />
  </template>
  <template v-else="">
     <span @click="c">{{v}}</span>
  </template>

ポイント: $nextTickで次のフレームでの処理を行っています。

  const vm = new Vue({
    el: "#app",
    data: {v: "クリックして編集", f: false},
    methods: {
      c: function() {
        this.f = true
        this.$nextTick(function () { this.$refs.r1.focus() })
      },
    },
  })

バックナンバー(Vue.jsサンプルコード)

Vue.jsサンプルコード(01〜03)Hello World・簡単な導入方法・デバッグ・結果の表示とメモ化

Ruby on RailsによるWEBシステム開発、Android/iPhoneアプリ開発、電子書籍配信のことならお任せください この記事を書いた人と働こう! Ruby on Rails の開発なら実績豊富なBPS

この記事の著者

hachi8833

Twitter: @hachi8833、GitHub: @hachi8833 コボラー、ITコンサル、ローカライズ業界、Rails開発を経てTechRachoの編集・記事作成を担当。 これまでにRuby on Rails チュートリアル第2版の半分ほど、Railsガイドの初期翻訳ではほぼすべてを翻訳。その後も折に触れてそれぞれ一部を翻訳。 かと思うと、正規表現の粋を尽くした日本語エラーチェックサービス enno.jpを運営。 実は最近Go言語が好き。 仕事に関係ないすっとこブログ「あけてくれ」は2000年頃から多少の中断をはさんで継続、現在はnote.muに移転。

hachi8833の書いた記事

週刊Railsウォッチ

インフラ

BigBinary記事より

ActiveSupport探訪シリーズ