質問編集履歴

1

変更

2020/01/20 08:40

投稿

makoto-n
makoto-n

スコア436

test CHANGED
File without changes
test CHANGED
@@ -292,4 +292,156 @@
292
292
 
293
293
  ![vue](61900a2b1c704c7adab76ece8a504ba8.png)
294
294
 
295
+
296
+
297
+ 変更1/20 17:37
298
+
299
+ ---
300
+
301
+ ```js
302
+
303
+ const vm = new Vue({
304
+
295
- ### 補足情報(FW/ツールのバージョンなど)
305
+ el: '#app',
306
+
307
+ data: {
308
+
309
+ counter: 0,
310
+
311
+ todoItms: [
312
+
313
+ { title: '領収書を準備する', isChecked: true },
314
+
315
+ { title: 'Vue.jsハンズオンの資料を作る', isChecked: true },
316
+
317
+ { title: '参加者の人数を確認する', isChecked: false },
318
+
319
+ { title: 'ピザを注文する', isChecked: false },
320
+
321
+ { title: '参加費のお釣りを準備する', isChecked: false },
322
+
323
+ { title: '会場設営をする', isChecked: false },
324
+
325
+ ],
326
+
327
+ newItmTitle: '', //追加
328
+
329
+ danger_massage: ''
330
+
331
+ },
332
+
333
+ methods: {
334
+
335
+ add() {
336
+
337
+ this.counter++
338
+
339
+ this.saveCnt();
340
+
341
+ },
342
+
343
+ saveCnt() {
344
+
345
+ localStorage.setItem('counter', JSON.stringify(this.counter));
346
+
347
+ },
348
+
349
+ loadCnt() {
350
+
351
+ if(!localStorage.getItem('counter')) {
352
+
353
+ this.counter = 0;
354
+
355
+ } else {
356
+
357
+ this.counter = JSON.parse( localStorage.getItem('counter') );
358
+
359
+ }
360
+
361
+ },
362
+
363
+
364
+
365
+ addTodo(newItmTitle) {
366
+
367
+ this.danger_massage = '';
368
+
369
+ if (this.newItmTitle.length <= 20) {
370
+
371
+
372
+
373
+ this.todoItms.push({
374
+
375
+ title: this.newItmTitle,
376
+
377
+ isChecked: false
378
+
379
+ });
380
+
381
+ this.newItmTitle = '';
382
+
383
+ this.saveTodo(); //ブラウザに保存
384
+
385
+ } else {
386
+
387
+ this.danger_massage = '<span class="red">多いよー' + this.newItmTitle.length + '文字! 20文字以下でおねがい!</span>'
388
+
389
+ }
390
+
391
+ },
392
+
393
+ deleteTodo() {
394
+
395
+ this.todoItms = this.todoItms.filter( (todoItms) => {
396
+
397
+ return todoItms.isChecked === false;
398
+
399
+ });
400
+
401
+ this.saveTodo();
402
+
403
+ },
404
+
405
+ saveTodo() {
406
+
407
+ localStorage.setItem('todoItms', JSON.stringify(this.todoItms));
408
+
409
+ },
410
+
411
+ loadTodo() {
412
+
413
+ if (!localStorage.getItem('todoItms')) {
414
+
415
+ this.todoItms = vm.todoItms;
416
+
417
+ } else {
418
+
419
+ this.todoItms = JSON.parse( localStorage.getItem('todoItms') );
420
+
421
+ if( !this.todoItms ){
422
+
423
+ this.todoItms = [];
424
+
425
+ }
426
+
427
+ }
428
+
429
+ },
430
+
431
+
432
+
433
+ },
434
+
435
+ mounted() {
436
+
437
+ this.loadTodo();
438
+
439
+ this.loadCnt();
440
+
441
+ },
442
+
443
+ })
444
+
445
+ ```
446
+
447
+ メソッド記法について、変更しました。