4
3

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.

vue.js+Firebase+vue.draggableな連携 

Posted at

vue.draggableとFirebaseを組み合わせてみました。
みなさまvue.draggable紹介してくれているんですけど、DBに保存するところまで書いてくれていないんですよね。。。決まったデータに要素追加してそこでの動きだけ見て終わり。な記事はたくさんあるんですけど、やりたいのはオンラインに保存するところ。

というわけで、ちょちょいとかいてみました。

  import draggable from 'vuedraggable'

してスタート。

あとは、ボードの内容が変わったタイミングで、Firebaseのaddかupdateを実行するだけ。以上です。watchとかにぶち込んでおきましょう。いかのような感じで。

  <draggable class="list-group" element="ul" v-model="list" 
   :options="dragOptions" :move="onMove" @start="isDragging=true" 
   @end="isDragging=false">


  watch: {
     isDragging(newValue) {

localstorageに保存してもいいんですが、まぁ、処理はどっちかに絞りたい。。。のでFirebaseによせましょう。ちなみに条件分岐がけっこう手間かかる。。。

はまった個所:
・firebaseに登録するときは、ボードの情報をまるっと文字列で保存するべし。Jsonstringify便利。
・文字列をJSON.parseし、arrayとしてに流し込む。
・firebaseにデータがあるかないかでupdateを実行したいがタイミングを間違うと、ドキュメントが重複登録される。ここはconsole.logを打ちまくってどのタイミングでどう動いているのかを把握すべし。

それでは良きVueライフを~ ^o^

4
3
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
4
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?