vue实现简单表格组件实例详解


Posted in Javascript onApril 16, 2017

本来想这一周做一个关于vuex的总结的,但是由于朋友反应说还不知道如何用vue去写一个组件,所以在此写写一篇文章来说明下如何去写vue页面或者组件。vue的核心思想就是组件,什么是组件呢?按照我的理解组件就是装配页面的零件,比如一辆车有大大小小许多零件组成,那么同样的一个页面,也是有许多组件构成的比如说头部组件 按钮组件等等,vue三大核心组件 路由 状态管理,路由控制页面的渲染,页面由组件组成,数据有vuex进行管理和改变。下面我会以一个简单的案例来说

第一步:构建一个简单的vue项目,老规矩直接在命令行输入

vue init webpack myproject
cd my vue
cnpm/npm install
cnpm/npm run dev

执行结果如下

vue实现简单表格组件实例详解

然后你会在8080端口看到vue的标志页面

第二步:分析目录结构 主要是组件入口app.vue和main.js

第三步:写页面

我们在app.vue下这样写

<template>
 <div id="wrapper">
 <router-view></router-view>
 </div>
</template>
<script>
 export default {
  data () {
  return {

  }
  },
  components: {
  }
 }
</script>

在main.js中这样写

import Vue from 'vue'
import App from './App'
import Home from './pages/Home.vue'
import VueRouter from 'vue-router'
import 'bootstrap/dist/css/bootstrap.css'
Vue.use(VueRouter)
const routes = [{
 path: '/',
 component: Home
}]
const router = new VueRouter({
 routes
})
/* eslint-disable no-new */
new Vue({
 el: '#app',
 router,
 template: '<App/>',
 components: { App }
})

main.js主要包括模块导入以及组件导入和注册,路由配置,当然路由配置可以单独写出来。

由上面的路由配置可以知道当path为‘/'时候,我们渲染到app.vue中的页面为home.vue页面,如下

<template>
 <div class="jumbotron">
 <h1>这个是路由对应的页面,下面就是一个表格组件</h1>
 <table-com/>
 </div>
</template>
<script>
 import table from '../components/Hello.vue'
 export default {
  data () {
  return {
  }
  },
  components: {
  tableCom: table
  }
 }
</script>

其中import table from '../components/Hello.vue'表示导入这个table组件到home.vue页面

但是只导入而没有注册这个组件是无效的,就好像定义了一个函数而没有执行。所以我们需要注册这个组件

也就是components:{tableCom: table}意思是自定义一个tableCom标签来映射这个组件,但是vue规定但标签名过长的时候,需要以分开方式去写比如tableCom 要写成table-com.

这样就完成了一个组件的导入和注册,下面我们来完成这个组件

table.vue界面如下

<template>
 <div style="padding:20px;" id="app">
  <div class="panel panel-primary">
   <div class="panel-heading">用户管理</div>
   <table class="table table-bordered table-striped text-center">
    <thead>
     <tr>
      <th>序号</th>
      <th>用户名</th>
      <th>年龄</th>
      <th>毕业学校</th>
      <th>操作</th>
     </tr>
    </thead>
    <tbody>
     <tr v-for ="(user,index) in users">
      <td>{{index+1}}</td>
      <td>{{user.name}}</td>
      <td>{{user.age}}</td>
      <td>{{user.school}}</td>
      <td><button v-on:click="remove(index)">remove</button></td>
     </tr>
     <tr>
      <td></td>
      <td><input type="text" id="name" v-model="user.name"/></td>
      <td><input type="text" id="age"v-model="user.age"/></td>
      <td><input type="text" id="school"v-model="user.school"/></td>
      <td><button @click="insert">insert</button></td>
     </tr>
    </tbody>
   </table>
  </div>
 </div>
</template>
<script>
export default {
 name: 'hello',
 data () {
 return {
  user: {'name': '', 'age': '', 'school': ''},
  users: [
  {'name': '李磊', 'age': '25', 'school': '洛阳理工'},
  {'name': '张成', 'age': '23', 'school': '桂林电子科技'},
  {'name': '炼心', 'age': '22', 'school': '江西电子科技'}
  ]
 }
 },
 methods: {
 insert: function () {
  this.users.push(this.user)
 },
 remove: function (index) {
  this.users.splice(index, 1)
 }
 }
}
</script>
<!-- Add "scoped" attribute to limit CSS to this component only -->
<style scoped>
h1, h2 {
 font-weight: normal;
}
ul {
 list-style-type: none;
 padding: 0;
}
li {
 display: inline-block;
 margin: 0 10px;
}
a {
 color: #42b983;
}
tr,th{
 text-align:center;
}
</style>

这个组件实现了简单的增删功能,主要是对data数据的修改,我们要明白,我们平常使用的jquery只是对dom节点的操作,比如我们要改变一个数据我们就要首先获取dom然后通过jquery的方法来获取值,而vue则不然它是对data数据进行操作,数据双向绑定,数据改变则视图改变,同样视图改变则数据改变。

vue实现简单表格组件实例详解

以上所述是小编给大家介绍的vue实现简单表格组件实例详解,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的,在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
JS短路原理的应用示例 精简代码的途径
Dec 13 Javascript
jQuery中add()方法用法实例
Jan 08 Javascript
Windows系统下Node.js的简单入门教程
Jun 23 Javascript
jQuery实现可展开合拢的手风琴面板菜单
Sep 15 Javascript
JS数组合并push与concat区别分析
Dec 17 Javascript
jQuery实现的右下角广告窗体跟随效果示例
Sep 16 Javascript
JavaScript使用Range调色及透明度实例
Sep 25 Javascript
jQuery Ajax全解析
Feb 13 Javascript
vscode 开发Vue项目的方法步骤
Nov 25 Javascript
基于vue.js实现分页查询功能
Dec 29 Javascript
jquery选择器和属性对象的操作实例分析
Jan 10 jQuery
解决Vue+SpringBoot+Shiro跨域问题
Jun 09 Vue.js
JavaScript实现网页头部进度条刷新
Apr 16 #Javascript
利用JavaScript在网页实现八数码启发式A*算法动画效果
Apr 16 #Javascript
JavaScript 函数的定义-调用、注意事项
Apr 16 #Javascript
AngularJS双向绑定和依赖反转实例详解
Apr 15 #Javascript
JavaScript简单计算人的年龄示例
Apr 15 #Javascript
微信小程序 ES6Promise.all批量上传文件实现代码
Apr 14 #Javascript
微信小程序动态的加载数据实例代码
Apr 14 #Javascript
You might like
php中base64_decode与base64_encode加密解密函数实例
2014/11/24 PHP
PHP实现上传多图即时显示与即时删除的方法
2017/05/09 PHP
[原创]PHP获取数组表示的路径方法分析【数组转字符串】
2017/09/01 PHP
win10 apache配置虚拟主机后localhost无法使用的解决方法
2018/01/27 PHP
PHP ADODB实现分页功能简单示例
2018/05/25 PHP
认识延迟时间为0的setTimeout
2008/05/16 Javascript
jQuery对象初始化的传参方式
2015/02/26 Javascript
jQuery菜单插件superfish使用指南
2015/04/21 Javascript
Angular.js 实现数字转换汉字实例代码
2016/07/14 Javascript
easyui combobox开启搜索自动完成功能的实例代码
2016/11/08 Javascript
使用JS正则表达式 替换括号,尖括号等
2016/11/29 Javascript
Angular指令封装jQuery日期时间插件datetimepicker实现双向绑定示例
2017/01/22 Javascript
详解nodejs微信公众号开发——2.自动回复
2017/04/10 NodeJs
jQuery表单设置值的方法
2017/06/30 jQuery
jQuery niceScroll滚动条错位问题的解决方法
2018/02/03 jQuery
JavaScript实现微信号随机切换代码
2018/03/09 Javascript
写一个Vue Popup组件
2019/02/25 Javascript
8 个有用的JS技巧(推荐)
2019/07/03 Javascript
[01:09:40]Newbee vs Pain 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
使用Python的urllib2模块处理url和图片的技巧两则
2016/02/18 Python
使用Python将数组的元素导出到变量中(unpacking)
2016/10/27 Python
Python爬虫信息输入及页面的切换方法
2018/05/11 Python
Numpy数据类型转换astype,dtype的方法
2018/06/09 Python
Python爬取破解无线网络wifi密码过程解析
2019/09/17 Python
打包PyQt5应用时的注意事项
2020/02/14 Python
基于python实现生成指定大小txt文档
2020/07/20 Python
物流经理自我评价
2013/09/23 职场文书
环境科学毕业生自荐信
2013/11/21 职场文书
应用艺术毕业生的自我评价
2013/12/04 职场文书
工作鉴定评语
2014/05/04 职场文书
流动人口婚育证明
2014/10/19 职场文书
学术研讨会主持词
2015/07/04 职场文书
小学体育教学随笔
2015/08/14 职场文书
windows下快速安装nginx并配置开机自启动的方法
2021/05/11 Servers
十大必看国产动漫排名,魁拔上线,第二曾在日本播出
2022/03/18 国漫
Windows Server 2022 超融合部署(图文教程)
2022/06/25 Servers