前提・実現したいこと
vue.jsで簡易アプリをしているのですが、
localStorageを呼び出すタイミングが上手くいきません。
発生している問題・エラーメッセージ
下記のコードで、localStorageを呼び出しているつもりなのですが、
データが消えてしまいます。
jsvascript
1mounted: function() { 2 this.items = JSON.parse(localStorage.getItem('items')) | []; 3 },
該当のソースコード
html
1<div id="app"> 2 <ul v-for="item in items"> 3 <li>{{item.id}}</li> 4 </ul> 5 <p @click="addItem"> 6 クリックで追加 7 </p> 8 </div> 9
jsvascript
1var vue = new Vue({ 2 el:'#app', 3 data: { 4 items:[ 5 {id:'a',text:'aaa'}, 6 {id:'b',text:'bbb'} 7 ] 8 }, 9 methods: { 10 addItem:function(){ 11 let todo = {id:'c', text:'ccc'} 12 this.items.push(todo) 13 } 14 }, 15 watch: { 16 items: { 17 handler: function() { 18 localStorage.setItem('items', JSON.stringify(this.items)); 19 }, 20 deep: true 21 } 22 }, 23 mounted: function() { 24 this.items = JSON.parse(localStorage.getItem('items')) | []; 25 }, 26})
試したこと
mountedのタイミングが誤っていると考え、vue.jsのライフサイクルを各種試してみましたが、上手くいきませんでした。
動作確認用として、Githubにファイルをアップロードしました。
githubのURL https://github.com/kondo97/demo.git
動作確認用のURL https://kondo97.github.io/demo/
#その他
お分かりになる方がいらっしゃいましたら、ご教授いただけると大変助かります。
よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/07/19 14:00
2021/07/20 02:39