vue小试 (案例一)
1、DOM元素标识------$refs
一般来讲,获取DOM元素,需document.querySelector(".input1")获取这个dom节点,然后在获取input1的值。
但是用ref绑定之后,我们就不需要在获取dom节点了,直接在上面的input上绑定input1,然后$refs里面调用就行。
然后在javascript里面这样调用:this.$refs.input1 这样就可以减少获取dom节点的消耗了
2、获取input 元素值
<input type="text" placeholder="输入编号" ref="input1"/><input type="text" placeholder="输入名称" ref="input2"/><br />
<input type="button" value="添加数据" @click="addDate"/>
//获取input 元素值
var id = this.$refs.input1.value;
var name = this.$refs.input2.value;
//清空页面上的文本框中的数据
this.$refs.input1.value = "";
this.$refs.input2.value = "";
3、完整案例
1 <!DOCTYPE html>2 <html>
3 <head>
4 <meta charset="UTF-8">
5 <title></title>
6 <script src="https://cdn.jsdelivr.net/npm/vue"></script>
7 <style>
8 .box {
9 width: 900px;
10 height: auto;
11 overflow: hidden;
12 margin: 30px auto;
13 }
14
15 .left {
16 height: 150px;
17 width: 185px;
18 padding: 5px;
19 display: inline-block;
20 border: 1px solid black;
21 }
22
23 .left input {
24 padding: 2px;
25 margin-top: 10px;
26 }
27
28 .right {
29 width: 600px;
30 height: auto;
31 display: inline-block;
32 margin-left: 30px;
33 vertical-align: top;
34 }
35
36 .right table {
37 border-collapse: collapse;
38 width: 580px;
39 }
40
41 .right table th {
42 background-color: green;
43 padding: 5px;
44 text-align: center;
45 border: 1px solid black;
46 color: #FFFFFF;
47 }
48
49 .right table tr {
50 text-align: center;
51 }
52
53 .right table td {
54 border: 1px solid black;
55 }
56 </style>
57 </head>
58 <body>
59 <div id="app">
60 <div class="box">
61 <div class="left">
62 <input type="text" placeholder="输入编号" ref="input1"/>
63 <input type="text" placeholder="输入名称" ref="input2"/><br />
64 <input type="button" value="添加数据" @click="addDate"/>
65 </div>
66 <div class="right">
67 <table>
68 <tr>
69 <th>编号</th>
70 <th>品牌名称</th>
71 <th>创建时间</th>
72 <th>操作</th>
73 </tr>
74 <tr v-for="item in list">
75 <td>{{item.id}}</td>
76 <td>{{item.name}}</td>
77 <td>{{item.time}}</td>
78 <td>
79 <a href="javascript:void(0)" @click="delte(item.id)">删除</a>
80 </td>
81 </tr>
82 </table>
83 </div>
84 </div>
85 </div>
86 </body>
87 <script>
88 var vm = new Vue({
89 el:'#app',
90 data:{
91 list:[
92 {"id":1,"name":"宝马","time":new Date()},
93 {"id":2,"name":"奔驰","time":new Date()}
94 ]
95 },
96 // 在 methods中定义方法函数
97 methods:{
98 //删除
99 delte:function(id){
100 if (!confirm("是否删除数据?")) {
101 return;
102 }
103 //调用list.findIndex()方法,根据传入的id获取到这个要删除数据的索引值
104 var index = this.list.findIndex(function (item) {
105 return item.id == id;
106 });
107 //调用list.splice(删除的索引,删除的元素个数)
108 this.list.splice(index, 1);
109 },
110 //添加
111 addDate:function(){
112 //包装成list要求的对象
113 var id = this.$refs.input1.value;
114 var name = this.$refs.input2.value;
115 var tem = {
116 // id: this.id,
117 // name: this.name,
118 id: id,
119 name: name,
120 time: new Date()
121 };
122 console.log(tem);
123 console.log(id);
124 console.log(name);
125 //将tem追加到list数组中
126 this.list.push(tem);
127 //清空页面上的文本框中的数据
128 // this.id = "";
129 // this.name = "";
130 this.$refs.input1.value = "";
131 this.$refs.input2.value = "";
132 }
133 }
134 })
135 </script>
136 </html>
案例
以上是 vue小试 (案例一) 的全部内容, 来源链接: utcz.com/z/378012.html