用vue实现简单分页
在这个demo中,我用vue对一个json文件中的数据进行了简单的分页,没用用到交互,一下是我的实现过程。
基础逻辑
1.将json文件引入app.vue,并作为data返回
data(){
var testData = require("../test.json");
return {testData}
},
2.将testData使用v-for呈递在页面上
<table>
<tr v-for="(item,index) in testData">
<td v-for="items in item">
{{items}}
</td>
</tr>
</table>
3.用v-if判断显示条数
<table>
<tr v-for="(item,index) in testData" v-if="index>=0&&index<10">
<td v-for="items in item">
{{items}}
</td>
</tr>
</table>
4.我考虑到vue双向数据绑定的特点,所以想到改变v-if中大于和小于两个值就可以实现分页了,所以我把这两个值改成了变量,通过点击上一页下一页改变变量的值。
<table>
<tr v-for="(item,index) in testData" v-if="index>=begin&&index<end">
<td v-for="items in item">
{{items}}
</td>
</tr>
</table>
<input type="button" value="上一页" @click="decrement">
<input type="button" value="下一页" @click="increment">
5.我开始直接把decrement和increment函数放在方法里面,结果发现根本改变不了begin和end的值。于是我用了vuex.
store.js
import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex);
var state = {
front:0,
count:10
};//设置初始数字
const mutations = {
increment(state) {//处理数据变化的函数
state.front = state.front+10;
state.count=state.count+10;
},
decrement(state) {
state.front = state.front-10;
state.count=state.count-10;
}
};
const actions = {//处理你要干什么
increment:({commit})=> {
commit('increment');
},
decrement:({commit}) => {
commit('decrement');
},
clickAsync: ({commit}) => {
new Promise((resolve) => {
setTimeout(function(){
commit('increment');
resolve();
},1000);
})
}
}
const getters = {
begin(state) {
return state.front;
},
end(state) {
return state.count;
}
};
//需要导出Store对象
export default new Vuex.Store({
state,
mutations,
actions,
getters
});
main.js
import Vue from 'vue'
import App from './App.vue'
import store from './store'
new Vue({
store,
el: '#app',
render: h => h(App)
})
app.vue
<template>
<div id="app">
<input type="button" value="上一页" @click="decrement">
<button>第{{end/10}}页</button>
<input type="button" value="下一页" @click="increment">
<table>
<tr v-for="(item,index) in testData" v-if="index>=begin&&index<end">
<td v-for="items in item">
{{items}}
</td>
</tr>
</table>
</div>
</template>
<script>
import {mapGetters,mapActions} from 'vuex'
export default {
data(){
var testData = require("../test.json");
return {testData}
},
computed:mapGetters([//管理所有的事件
'begin',
'end'
]),
methods:mapActions([//获取数据
'increment',
'decrement',
'clickOdd',
'clickAsync'
])
}
</script>
<style>
#app {
font-family: 'Avenir', Helvetica, Arial, sans-serif;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
text-align: center;
color: #2c3e50;
margin-top: 60px;
}
h1, h2 {
font-weight: normal;
}
ul {
list-style-type: none;
padding: 0;
}
li {
display: inline-block;
margin: 0 10px;
}
a {
color: #42b983;
}
</style>
这样,一个简单的分页就实现了
用vue实现简单分页的更多相关文章
- Vue下简单分页及搜索功能
最近利用Vue和element ui仿写了个小页面,记一哈分页和搜索功能的简单实现. 首页 emmmm..... 搜索框输入..... 搜索完成 数据是直接写在这里面的: cardPhoto:[ ...
- vue.js 2.0实现的简单分页
<!DOCTYPE html> <html> <head> <meta charset="UTF-8" /> <title&g ...
- JavaScript简单分页,兼容IE6,~3KB
简介 兼容IE6+及现代浏览器的简单分页,支持同一页面多个分页. 使用 Browser <link rel="stylesheet" href="css/GB-pa ...
- MVC简单分页
对Car汽车表分页 实现简单分页,放在这里方便查看回顾,自定义每页几条有点问题,有待完善······ 1.新建mvc项目 2.添加linq to sql 数据库连接 3.添加CarBF类 using ...
- 使用Vs2005打造简单分页浏览器(1)原创
原文:使用Vs2005打造简单分页浏览器(1)原创 使用Vs2005打造简单分页浏览器(1)原创1引言2功能3实现过程以及关键点4总结5不足之处6其他7 代码下载 1 引言很早就有搞一个浏览器的 ...
- react构建淘票票webapp,及react与vue的简单比较。
前言 前段时间使用vue2.0构建了淘票票页面,并写了一篇相关文章vue2.0构建淘票票webapp,得到了很多童鞋的支持,因此这些天又使用react重构了下这个项目,目的无他,只为了学习和共同进步! ...
- vue.js之生命周期,防止闪烁,计算属性的使用,vue实例简单方法和循环重复数据
摘要:今天是比较糟糕的一天没怎么学习,原因是学校的wifi连不上了~~.今天学习一下vue的生命周期,如何防止闪烁(也就是用户看得到花括号),计算属性的使用,vue实例简单方法,以及当有重复数据时如何 ...
- Vue的简单入门
Vue的简单入门 一.什么是Vue? vue.js也一个渐进式JavaScript框架,可以独立完成前后端分离式web项目 渐进式:vue可以从小到控制页面中的一个变量后到页面中一块内容再到整个页面, ...
- MVC001之mvcpager简单分页
描述:用mvcpager实现简单分页功能 参考网址: http://www.cnblogs.com/iamlilinfeng/archive/2013/03/11/2951460.html http: ...
随机推荐
- Linux系统安装-MacBook网卡驱动问题解决
先附上MacBook的linux安装教程 需要注意的是第7步中可能无法识别出OS X的系统,也没关系,只要格式化磁盘的时候注意选择对应磁盘即可,格式化成EXT4分区. 安装好后发现无法连接无线网络,应 ...
- ShoneSharp语言(S#)的设计和使用介绍系列(2)— 掀开盖头
ShoneSharp语言(S#)的设计和使用介绍 系列(2)- 掀开盖头 作者:Shone 声明:原创文章欢迎转载,但请注明出处,https://www.cnblogs.com/ShoneSharp. ...
- 命令模式(Command)
命令模式(Command) 命令模式很好理解,举个例子,司令员下令让士兵去干件事情,从整个事情的角度来考虑,司令员的作用是,发出口令,口令经过传递,传到了士兵耳朵里,士兵去执行.这个过程好在,三者相互 ...
- webpack构建项目
webpack构建项目 案例代码戳这里 ps:每个案例对应相应的demo,例如"案例1"对应"demo1" 一.webpack基本功能及简单案例 安装webpa ...
- Wannafly模拟赛5 A Split 暴力 二分加速
你有一个大小为
- linux nginx搭配https
微信小程序upload接口必须是https请求,所以就搭建https 1.申请ssl证书 这里用的是腾讯云提供的免费ssl. https://console.qcloud.com/ssl?_ga=1. ...
- 配置scrapy-splash+python爬取医院信息(利用了scrapy-splash)
北京艾丽斯妇科医院(http://fuke.fuke120.com/) 首先先说一下配置splash 1.利用pip安装scrapy-splash库 pip install scrapy-splash ...
- ArcGIS jsAPI (4.x)本地部署字体符号乱码
在下载了新版arcigs 的 JS API 后,每次部署在IIS中都会出现部件字体乱码的问题,需配置响应标头和添加文件映射 一. HTTP响应标头配置 在 IIS 中的 HTTP响应标头 中加入以下配 ...
- NOIP2017普及组解题报告
刚参加完NOIP2017普及,只考了210,于是心生不爽,写下了这篇解题报告...(逃 第一次写博,望dalao们多多指导啊(膜 第一题score,学完helloworld的人也应该都会吧,之前好多人 ...
- Eclipse Maven Mybatis的使用
关于maven的使用网上有太多教程,这里就不再介绍.本篇文章只用来记录 在Eclipse中使用maven创建含有mybatis的程序的配置,及注意事项. 使用Eclipse创建Maven项目 创建后的 ...