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 相关文章推荐
Jquery替换已存在于element上的event的方法
Mar 09 Javascript
js页面滚动时层智能浮动定位实现(jQuery/MooTools)
Aug 23 Javascript
javascript(js)的小数点乘法除法问题详解
Mar 07 Javascript
jquery鼠标放上去显示悬浮层即弹出定位的div层
Apr 25 Javascript
详解JavaScript中数组的相关知识
Jul 29 Javascript
Javascript实现图片轮播效果(一)让图片跳动起来
Feb 17 Javascript
js字符串截取函数slice、substring和substr的比较
May 17 Javascript
js实现各种复制到剪贴板的方法(分享)
Oct 27 Javascript
vue实现留言板todolist功能
Aug 16 Javascript
详解EasyUi控件中的Datagrid
Aug 23 Javascript
jQuery扩展方法实现Form表单与Json互相转换的实例代码
Sep 05 jQuery
bootstrap实现嵌套模态框的实例代码
Jan 10 Javascript
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的错误信息
2006/10/09 PHP
php函数实现判断是否移动端访问
2015/03/03 PHP
php判断文件上传图片格式的实例详解
2017/09/30 PHP
在textarea中屏蔽js的某个function的javascript代码
2007/04/20 Javascript
JQury slideToggle闪烁问题及解决办法
2011/07/05 Javascript
JavaScript高级程序设计(第3版)学习笔记10 再访js对象
2012/10/11 Javascript
javascript中验证大写字母、数字和中文
2014/01/15 Javascript
基于NodeJS的前后端分离的思考与实践(四)安全问题解决方案
2014/09/26 NodeJs
jQuery的context属性用法实例
2014/12/27 Javascript
JavaScript实现网站访问次数统计代码
2015/08/12 Javascript
详解Angularjs中的依赖注入
2016/03/11 Javascript
深入浅析JavaScript的API设计原则
2016/06/14 Javascript
jQuery实现表格文本框淡入更改值后淡出效果
2016/09/27 Javascript
echart简介_动力节点Java学院整理
2017/08/11 Javascript
vue 组件中slot插口的具体用法
2018/04/03 Javascript
浅谈JavaScript 代码简洁之道
2019/01/09 Javascript
小程序简单两栏瀑布流效果的实现
2019/12/18 Javascript
记一次用ts+vuecli4重构项目的实现
2020/05/21 Javascript
vue中的循环对象属性和属性值用法
2020/09/04 Javascript
通过实例解析js可枚举属性与不可枚举属性
2020/12/02 Javascript
分析python动态规划的递归、非递归实现
2018/03/04 Python
ubuntu16.04制作vim和python3的开发环境
2018/09/23 Python
pyqt5 禁止窗口最大化和禁止窗口拉伸的方法
2019/06/18 Python
pytorch 获取tensor维度信息示例
2020/01/03 Python
Python内置数据类型list各方法的性能测试过程解析
2020/01/07 Python
python库skimage给灰度图像染色的方法示例
2020/04/27 Python
Python如何避免文件同名产生覆盖
2020/06/09 Python
python实现mean-shift聚类算法
2020/06/10 Python
python 检测图片是否有马赛克
2020/12/01 Python
宝拉珍选美国官网:Paula’s Choice美国
2018/01/07 全球购物
Hudson Jeans官网:高级精制牛仔裤
2018/11/28 全球购物
大学生个人事迹材料
2014/01/21 职场文书
文艺演出策划方案
2014/06/07 职场文书
奶茶店创业计划书
2014/08/14 职场文书
采购员工作总结范文
2015/08/12 职场文书
六年级作文之关于梦
2019/10/22 职场文书