1.在components下建一个

2.代码如下:

<template>
<!--1.业务是开始有一组数据,序号,姓名,性别,年龄,操作(删除)
    2.有三个输入框输入姓名,性别,年龄,(增加)
    3.当输入东西后,按了增加按钮,将增加一组数据到数组中
    4.当按了删除就会删除一组数据
    主要业务如上
    细节:(重点)
    1.加样式让表格对齐等,像表格的感觉,表格如何设置宽高
    2.引入背景图片方式
    3.增加时验证是否有值输入在输入框
    4.v-model双向绑定,导致增加到数组的数据也会发生变化,引用传递和值传递区别,利用对象复制,开辟新空间来存储
    5.===会验证值和类型,==只能验证值
    6.splice使用注意
    7.css样式的使用
--> 
<div>
   
  <center>
    <div class="top">
      *姓名:<input type="text" v-model="datas.name" placeholder="请输入姓名" >
      *性别<input type="text" v-model="datas.sex" placeholder="请输入性别">
       *年龄<input type="text" v-model="datas.age" placeholder="请输入年龄">
        <button @click="pushUsers" style="color:blue">增加</button>
   
    <table class="top-left" >
         <!-- <img src="~@/assets/timg.jpg"> 这是引入图片 -->
      <br>
      <!--
        1.这里加了<thead>表头</thead> <tbody>表体</tbody>,则不对齐
        2.其实可以认为th就是表头,td就是表体
        3.想要表格变大,就是让每个单元格变大,
        tr标签只能改变的是高度,td和th只能改变宽度
      -->
      <tr>
        <th v-for="site in heads" :key="site" class="th1">{{site}}</th>
      </tr>
      <tr v-for="(user,index) in users" :key="user">
        <td class="td1">{{index+1}}</td>
       <td class="td1">{{user.name}}</td>
       <td class="td1">{{user.sex}}</td>
       <td class="td1">{{user.age}}</td>
       <td class="td1"><button @click="deleteUsers(index)" style="color:blue">删除</button></td>
      </tr>
    
  </table>
    </div>
  </center>
</div>
</template>
<script>
export default{
  data(){
    return {
      heads:['序号','姓名','性别','年龄','操作'],
      datas:{name:'',sex:'',age:''},
      users:[
        {name:'张三',sex:'男',age:'22'},
        {name:'李四',sex:'女',age:'24'},
        {name:'小何',sex:'男',age:'25'}
      ]
    }
    
  },
  
  methods:{
    pushUsers(){
      //这个要好好理解一下,这里目的是把datas对象复制,就是开辟个新空间。
      //为啥具体要这步骤呢,
      //1.当你不加的时候,当你增加了一个对象后,你改变输入框的值,数组中增加的对象的值也会跟着改变,因为数组和对象都是引用传递
      //这里引用传递,相当就是我们一直是给一个内存地址赋值,所以才会跟着联改。引用传递:保存的是引用值(还是一个地址),值传递保存的是一个数据
      //进行了一些表单验证
      if(this.datas.name.trim()===""){
          window.alert('请输入姓名');
          return false;
      }
      if(this.datas.sex.trim()===''){
        window.alert('请输入性别');
        return false;
      }
      if(this.datas.age.trim()===''){
        window.alert('请输入年龄');
        return false;
      }
      let copy =Object.assign({},this.datas) 
      this.users.push(copy);
      console.log("name:"+this.datas.name+",sex:"+this.datas.sex+",age:"+this.datas.age)
    },
    deleteUsers(index){
      console.log("index:"+index)
      this.users.splice(index,1);
      //splice(index,num,item1,item2,item3....) 新增/删除/替换
      //index,代表数组新增/删除时的索引值,num:删除多少个,item:代表新增哪些/替换掉删除的哪些
    },
  }
}
</script>
<style>
.top-left th,td{
  border:1px solid #ccc;
  margin: auto;
  text-align: center;
  
 
  /* 1px:代表边框的宽度 ,solid:代表实线,dotted(点状),double(双线),dashed(虚线)
      这里 th和td间要加一个,号
      margin:外边距,auto:浏览器自动计算  ,也可以自己设置值
  text-align:文本对齐方式,left 左对齐,right:右对齐,center:居中
  */
}
.top{
 
            position: absolute;
            width: 700px;
            height:400px;
            border: 1px solid red;
            left: 0px;
            top: 0px;
            bottom: 0px;
            right: 0px;
            margin: auto;
            font-size: 16px;
            color: blue;
            /* 引入背景图方式 */
            background: url('~@/assets/timg.jpg') center center no-repeat;
            background-size : 700px,200px;
        }
  .th1 {
      width: 80px;
  }
  .td1 {
      width: 80px;
  }
  
  tr{
    height: 80px;
  }
</style>

3..index.js下添加路由

4.效果如图:

vue小例子-01的更多相关文章

  1. Vue 小练习01

    有红, 黄, 蓝三个按钮, 以及一个200X200px的矩形box, 点击不同的按钮, box的颜色会被切换为指定的颜色 <!DOCTYPE html> <html lang=&qu ...

  2. Vue编写的todolist小例子

    Vue编写的todolist小例子 本篇博客主要包含一个内容: 1.第一个内容:使用Vue编写todolist例子,包含的主要知识是v-model,v-for,el表达式,以及Vue中使用method ...

  3. Vue.js的小例子--随便写的

    1.领导安排明天给同事们科普下vue 2.简单写了两个小例子 3.话不多说直接上代码 <!DOCTYPE html> <html> <head> <meta ...

  4. 基于vue-cli、elementUI的Vue超简单入门小例子

    - 这个例子还是比较简单的,独立完成后,能大概知道vue是干嘛的,可以写个todoList的小例子. - 开始写例子之前,先对环境的部署做点简单的介绍,其实和Vue官方的差不多. #如若没有安装过vu ...

  5. JavaScript小例子:复选框全选

    JavaScript小例子:复选框全选 这只是一个小例子,很简单,但是这个功能还是很常用的: 实现后效果如图: JavaScript代码: <script type="text/jav ...

  6. oracle数据库包package小例子

    为了把某一个模块的函数.存储过程等方便查询维护,可以把它们打到一个包里.下面给出一个简单的小例子. 1.创建包头 create or replace package chen_pack is func ...

  7. spring-mvc-两个个小例子

    1.用Eclipse创建一个工程,命名为spring2.0 并添加相应的jar包(我用的是4.0.5的版本)到 lib 包下: spring-webmvc-4.0.5.RELEASE.jar spri ...

  8. Vue2.x源码学习笔记-从一个小例子查看vm实例生命周期

    学习任何一门框架,都不可能一股脑儿的从入口代码从上到下,把代码看完, 这样其实是很枯燥的,我想也很少有人这么干,或者这么干着干着可能干不下去了. 因为肯定很无聊. 我们先从一个最最简单的小例子,来查看 ...

  9. vuex2.0+两个小例子

    首先vuex概念比较多,一定要搞懂里面的概念,可以参考官网Vuex2.0概念,我写此文的目的是希望能对前端爱好者提供个参考,加深对vuex2.0各核心概念的理解. 废话少说,直接上干货.这是官网上的一 ...

随机推荐

  1. C语言 getchar

    C语言 getchar getchar是从标准输入设备读取一个char. 案例 #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #in ...

  2. 简述react、redux、react-redux、redux-saga、dva之间的关系

    [react] 定位:React 是一个用于构建用户界面的JavaScript库. 特点:它采用声明范式来描述应用,建立虚拟dom,支持JSX语法,通过react构建组件,能够很好的去复用代码: 缺点 ...

  3. 鼠标经过INPUT时自动获取焦点

    鼠标经过INPUT时自动获取焦点 <input type="text" name="addr" onMouseOver="this.focus( ...

  4. expect: spawn id exp6 not open while executing "expect eof"

    1.expect是基于tcl演变而来的,所以很多语法和tcl类似 基本的语法如下所示:1.1 首行加上/usr/bin/expect1.2 spawn: 后面加上需要执行的shell命令,比如说spa ...

  5. STL-list 链表

    #include <iostream> #include <list> using namespace std; int main() { // list可以在头部和尾部插入和 ...

  6. TamperMonkey 使用指南以及脚本推荐

    写在前面 Chrome浏览器是最适合开发者使用的浏览器,不仅仅是因为Chrome对于Js的友好支持,更是由于Chrome支持丰富且功能强大的插件,扩展了浏览器的功能和使用体验. 在这些插件里面,相信你 ...

  7. Tomcat开启JMX监控

    搭建模拟环境: 操作系统:centos7内存:1Gjdk:1.8.0_131tomcat:8.0.48 环境准备我们这里就不直接演示了,直接配置tomcat的jmx 1.进入到tomcat的bin目录 ...

  8. so the first day

    welcome to the world it sucks but you gona love it

  9. python 的eval函数

    python中的eval()函数是用来计算所有数学的代数计算式,这样可以很快得到复杂代数式的结果. 例如:383660347*375705824-1796136991-1726898699*18994 ...

  10. php 常用数学函数

    函数 描述 实例 输入 输出 abs() 求绝对值 $abs = abs(-4.2); //4.2 数字 绝对值数字 ceil() 进一法取整 echo ceil(9.999); // 10 浮点数 ...