##简述
初学vue,比Angular要简单易学一点,基本就是html代码+json。这是第一个小的例子,用到了vue的几个常用方法,其中v-for的$index稍微有点迷惑,也影响了完成的速度,网上说是vue2.0已经取消了这种用法,也不是很明白,跟着教程走的,后面的教程有讲解vue2.0的新特性,所以到后面完善吧。同时复习到了bootstrap的知识,之前知识稍微用过,现在才渐渐的明白这种css框架的内涵—赋class和角色role,bootstrap依赖于jQuery,所以库文件也要有jQuery的文件,而bootstrap.js主要提供各种组件,诸如模态框之类的。
注:不要弄混v-model和模态框的modal
##基本知识:
vue
v-model
v-for
v-on:xxx
v-show
bootstrap:
//class
.container(外部容器)
.fade(从上滑入)
.data-toggle和.data-target(处理模态框)
.text-muted(文本灰色)
//role
form
dialog
modal-dialog
##配置库文件
<!-- 引入bootstrap.min.css --><link rel="stylesheet" href="lib\bootstrap.min.css"><!-- 引入jquery --><script src="lib\jquery-3.3.1.min.js"></script><!-- 引入bootstrap.js --><script src="lib\bootstrap.js"></script><!-- 引入vue.js --><script src="lib\vue.js"></script>
##Script
<script>window.onload = function() {new Vue({el: '#box',// 注意这里面的内容为json,不要出现"="data: {myData: [],username: '',age: '',nowIndex: -100,deletemsg: '',},methods: {add: function() {this.myData.push({name: this.username,age: this.age,});this.username = '';this.age = '';},deleteMsg: function(n) {if (n == -1) {this.myData = ''; };this.myData.splice(n, 1);}},})}</script>
两个方法:add(),添加数据;deleteMsg(),删除数据
##html
<body><!-- 这里注意是class,container是控制全局居中在一个合适的位置 --><div class="container" id="box"><form role="form"><!-- 将标签和控件放在一个.form-group的<div>中,是获得最佳的间距所必需的 --><div class="form-group"><label for="username">用户名:</label><!-- bootstrap向所有的文本元素input、textarea、select添加.form-control --><input type="text" id="username" class="form-control" placeholder="请输入用户名" v-model="username"></div><div class="form-group"><label for="age">年龄:</label><input type="text" id="age" class="form-control" placeholder="请输入年龄" v-model="age"></div><div class="form-group"><!-- 这里注意是button,如果写submit每次都会刷新页面,数据一闪而过 --><input type="button" value="添加" class="btn btn-primary" v-on:click="add()"><input type="reset" value="重置" class="btn btn-danger"></div></form><hr><!-- .table-bordered边框 .table-hover移入效果--><table class="table table-bordered table-hover"><caption class="h3 text-info text-center">用户信息表</caption><tr class="text-danger"><th class="text-center">序号</th><th class="text-center">姓名</th><th class="text-center">年龄</th><th class="text-center">操作</th></tr><!-- 此处注意vue2.0中不支持{{$index}} --><tr class="text-center" v-for="(item, index) in myData"><td>{{index+1}}</td><td>{{item.name}}</td><td>{{item.age}}</td><td><button class="btn btn-primary btn-sm" data-toggle="modal" data-target="#layer" v-on:click="nowIndex=index; deletemsg='确认删除吗?'"">删除</button></td></tr><tr v-show="myData.length != 0"><td colspan="4" class="text-right"><button class="btn btn-danger btn-sm" data-toggle="modal" data-target="#layer" v-on:click="nowIndex=-1"; deletemsg='确认删除全部吗?'">全部删除</button></td></tr><tr v-show="myData.length == 0"><td colspan="4" class="text-center text-muted"><p>暂无数据...</p></td></tr></table><!-- 对话层,即模态框 --><div role="dialog" class="modal fade bs-example-modal-sm" id="layer"><div class="modal-dialog"><div class="modal-content"><div class="modal-header"><!-- button放下面会出现错位 --><button type="button" class="close" data-dismiss="modal"><span>×</span></button><h4 class="modal-title">{{deletemsg}}</h4></div><hr><div class="modal-body text-right"><button data-dismiss="modal" class="btn btn-primary btn-sm">取消</button><button data-dismiss="modal" class="btn btn-danger btn-sm" v-on:click="deleteMsg(nowIndex)">确认</button></div></div></div></div></div>
</body>
##效果