1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121
| <!DOCTYPE html> <html lang="en">
<head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>案例-评论列表</title> <script src="./js/vue.js"></script> <style> ul { margin: 0; padding: 0; list-style: none; }
li { border: 1px dashed #000; }
li span { float: right; } </style> </head>
<body> <div id="app"> <cmt-box @func="loadComments"></cmt-box> <ul> <li v-for="item in list" :key="item.id"> <span>评论人:{{item.user}}</span> {{item.content}} </li> </ul> </div>
<template id="tmpl"> <div> <div> <label for="">评论人</label> <input type="text" v-model="user"> </div> <div> <label for="">评论内容</label> <textarea v-model="content"></textarea> </div> <div> <input type="button" value="发表评论" @click="postComment"> </div> </div> </template> <script> var commentBox = { data() { return { user: '', content: '' } }, template: "#tmpl", methods: { postComment() { var comment = { id: Date.now(), user: this.user, content: this.content }; var list = JSON.parse(localStorage.getItem('cmts') || '[]'); list.unshift(comment); localStorage.setItem('cmts', JSON.stringify(list)); this.user = this.content = ""; this.$emit('func'); } } }
var vm = new Vue({ el: '#app', data: { list: [{ id: Date.now(), user: '李白', content: '天生我材必有用' }, { id: Date.now(), user: '杜甫', content: '会当凌绝顶' } ] }, created() { this.loadComments(); }, methods: { loadComments() { var list = JSON.parse(localStorage.getItem('cmts') || '[]'); this.list = list; } }, components: { 'cmt-box': commentBox } }) </script> </body>
</html>
|