这篇文章主要介绍Vue如何实现用户自定义字段显示数据,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
Vue具体轻量级框架、简单易学、双向数据绑定、组件化、数据和结构的分离、虚拟DOM、运行速度快等优势,Vue中页面使用的是局部刷新,不用每次跳转页面都要请求所有数据和dom,可以大大提升访问速度和用户体验。
如下:
代码:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <script src="../lib/vue.min.js"></script> <style> .middle::-webkit-scrollbar {height:8px;} /* 滚动槽 */ .middle::-webkit-scrollbar-track {border-radius: 10px;} /* 滚动条滑块 */ .middle::-webkit-scrollbar-thumb {background: #ccc;} * {margin: 0;padding: 0;box-sizing:border-box;font-family: "微软雅黑";} #tabPanel{width:1100px;height:300px;margin:100px auto;} .left{float:left;height:300px;width:300px;font-size:0;} .left .item,.right .item,.middle .item{display:inline-block;width:100px;} .left .item span,.middle .item span,.left .item span{display:block;height:50px;text-align:center;line-height:50px;font-size:14px;border:1px solid #eee;} .right .item{width:200px;height:50px;line-height:50px;text-align:center;border:1px solid #eee;} .right .item span{display:inline-block;border:none;color:blue;text-decoration: underline;cursor:pointer;} .middle{float:left;height:300px;width:300px;font-size:0;overflow-x:scroll;overflow-y:hidden;} .right{float:left;height:300px;width:200px;} #tabPanel .chooseItem {padding:10px 0;} #tabPanel .chooseItem label{padding:0 10px;} </style> <title>Vue实现自定义字段数据</title> </head> <body> <div id="tabPanel"> <div class="chooseItem"> <label @click="chooseFile()"><input type="checkbox" @click.stop="" v-model="field.weight">体重</label> <label @click="chooseFile()"><input type="checkbox" @click.stop="" v-model="field.inter">兴趣</label> <label @click="chooseFile()"><input type="checkbox" @click.stop="" v-model="field.schoold">学校</label> <label @click="chooseFile()"><input type="checkbox" @click.stop="" v-model="field.district">所属地区</label> <label @click="chooseFile()"><input type="checkbox" @click.stop="" v-model="field.class">所属年级</label> <label @click="chooseFile()"><input type="checkbox" @click.stop="" v-model="field.math">数学</label> <label @click="chooseFile()"><input type="checkbox" @click.stop="" v-model="field.chinese">语文</label> <label @click="chooseFile()"><input type="checkbox" @click.stop="" v-model="field.english">英语</label> </div> <div class="left"> <div class="item"> <span>编号</span> <span v-for="(item, index) in students">{{item.id}}</span> </div> <div class="item"> <span>姓别</span> <span v-for="(item, index) in students">{{item.sex}}</span> </div> <div class="item"> <span>身高</span> <span v-for="(item, index) in students">{{item.hight}}</span> </div> </div> <div class="middle"> <div :> <div class="item" v-show="field.weight"> <span>体重</span> <span v-for="(item, index) in students">{{item.weight}}</span> </div> <div class="item" v-show="field.inter"> <span>兴趣</span> <span v-for="(item, index) in students">{{item.inter}}</span> </div> <div class="item" v-show="field.schoold"> <span>学校</span> <span v-for="(item, index) in students">{{item.schoold}}</span> </div> <div class="item" v-show="field.district"> <span>所属地区</span> <span v-for="(item, index) in students">{{item.district}}</span> </div> <div class="item" v-show="field.class"> <span>所属年级</span> <span v-for="(item, index) in students">{{item.class}}</span> </div> <div class="item" v-show="field.math"> <span>数学</span> <span v-for="(item, index) in students">{{item.math}}</span> </div> <div class="item" v-show="field.chinese"> <span>语文</span> <span v-for="(item, index) in students">{{item.chinese}}</span> </div> <div class="item" v-show="field.english"> <span>英语</span> <span v-for="(item, index) in students">{{item.english}}</span> </div> </div> </div> <div class="right"> <div class="item"> <span>操作</span> </div> <div class="item" v-for="(item, index) in students"> <span @click="detail(item.id ,index)" :title="item.id">查看</span> <span @click="detail(item.id ,index)" :title="item.id">删除</span> <span @click="detail(item.id ,index)" :title="item.id">修改</span> <span @click="detail(item.id ,index)" :title="item.id">冻结</span> </div> </div> </div> </body> <script> var v = new Vue({ el: "#tabPanel", data: { length: 3, field:{ weight: true, inter: true, schoold: true, district: false, class: false, math: false, chinese: false, english: false }, students:[{ id: 1, name: 'zhangsan01', sex: '男', hight: '168cm', weight: '56kg', inter: '篮球1', schoold: '清华大学1', district: '湖南省1', class: '大学三年级1', math: '97', chinese: '98', english: '120' },{ id: 2, name: 'zhangsan02', sex: '男', hight: '168cm', weight: '56kg', inter: '篮球2', schoold: '清华大学2', district: '湖南省2', class: '大学三年级2', math: '97', chinese: '98', english: '120' },{ id: 3, name: 'zhangsan03', sex: '男', hight: '168cm', weight: '56kg', inter: '篮球3', schoold: '清华大学3', district: '湖南省3', class: '大学三年级3', math: '97', chinese: '98', english: '120' },{ id: 4, name: 'zhangsan04', sex: '男', hight: '168cm', weight: '56kg', inter: '篮球4', schoold: '清华大学4', district: '湖南省4', class: '大学三年级4', math: '97', chinese: '98', english: '120' },{ id: 5, name: 'zhangsan05', sex: '男', hight: '168cm', weight: '56kg', inter: '篮球5', schoold: '清华大学5', district: '湖南省5', class: '大学三年级5', math: '97', chinese: '98', english: '120' }] }, methods: { //双击删除滑块 del: function(index) { this.tabs.splice(index, 1); this.tabContents.splice(index, 1) }, //编辑选项内容 editContent: function(index, value) { this.tabContents[index] = value; console.log(this.tabContents); }, chooseFile: function(){ var val = this.field; //this.length = 0; for (i in val){ if(val[i]){ this.length = this.length + 1; } //console.log(val.lenght) } if(this.length > 8){ this.length = 8; } console.log(this.length); } }, computed: { lengthb: function(){ if(length > 6){ lengthb = 6 } } }, watch: { field: function(val){ //console.log(this.field.lenght); } } }); </script> </html>
以上是“Vue如何实现用户自定义字段显示数据”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注亿速云行业资讯频道!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。