/**** 使用混入 - 把公共使用到的一些参数和方法提取出来,减少冗余,方便维护** 特点:* 1.可以定义共用变量,相当于扩展了父组件的对象与方法,*   各个变量是相互独立的,参数和方法在各组件中不共享,值的修改在各个组件中不会相互影响* 2.引入mixins后组件会对其进行合并,在发生冲突时以组件数据优先(组件内的参数和方法会优先覆盖)* 3.可以定义data、components、methods 、created、computed等属性(非html代码)** 使用方法:*  第一步:引入*  import { table } from "@/mixins/table.js";*  第二步:放入组件里*  export default {*    mixins: [myMixins],*    data() {*      return {}*    }*  }**  使用建议:*  1.页面list请求数据的方法名定义成 getListData,*    这样在点击翻页的时候,table.js会自动调用父页面的getListData方法请求数据*/
export const table = {data() {return {startRow: 1, // 表格的序号clickRow: {}, // 点击的某一行数据rowIndex: -1, // 点击的某一行序号columnIndex: 0, // 默认选择第0列list: [], // 列表数据数据listLoading: false, // loading标记// 列表数据查询参数selectForm: {total: 0,pageNums: 20,pageStart: 1,},}},methods: {headerClick(column, event) {// 获取点击的第几列this.columnIndex = column.index;},handleRow(row, column, event) {// 获取点击的第几行this.rowIndex = this.rowIndex == row.index ? -1 : row.index;this.clickRow = this.rowIndex == -1 ? {} : row;},tableRowClassName({ row, rowIndex }) {if (this.rowIndex == row.index) {return "nowRow";}},tableCellClassName({ row, column, rowIndex, columnIndex }) {row.index = rowIndex;column.index = columnIndex;if (this.columnIndex == columnIndex) {return "selectdColumn";}},handleSizeChange(val) {this.selectForm.pageNums = val;// 调用的是父组件的方法 如果父组件有的话,会调用if(this.getListData){this.getListData();this.setCurrentRow();}},handleCurrentChange(val) {this.selectForm.pageStart = val;// 调用的是父组件的方法 如果父组件有的话,会调用if(this.getListData){this.getListData();this.setCurrentRow();}},// 翻页的时候把值初始化 - 默认没有选中行setCurrentRow(){this.$nextTick(()=>{this.rowIndex = -1this.clickRow = {}})},}
}

父组件

<template><div><el-tableref="table"@header-click="headerClick"@row-click="handleRow":row-class-name="tableRowClassName":cell-class-name="tableCellClassName"stripev-loading="listLoading"element-loading-text="Loading":data="list"borderhighlight-current-row><el-table-column align="" label="序号" width="80"><template slot-scope="scope">{{ scope.row.index + startRow }}</template></el-table-column><el-table-column align="" prop="id" label="用户ID" width="200" ><template slot-scope="scope">{{ scope.row.id }}</template></el-table-column><el-table-column align="" prop="mobileNo" label="手机号" width="150" /><el-table-column label="实名状态" width="120"><template slot-scope="scope">{{ (scope.row.realAuth) }}</template></el-table-column><el-table-column label="区块链状态" width="120"><template slot-scope="scope">{{ [scope.row.blockchainState] }}</template></el-table-column><el-table-column align="" prop="articleCount" label="藏品数量" width="150" /><el-table-column align="" prop="payAmount" label="已购金额(元)" width="150" ><template slot-scope="scope">{{ (scope.row.payAmount) && (scope.row.payAmount).toFixed(2) }}</template></el-table-column><el-table-column align="" prop="welfareAmount" label="已捐金额(元)" width="150" ><template slot-scope="scope">{{ (scope.row.welfareAmount) && (scope.row.welfareAmount).toFixed(2) }}</template></el-table-column><el-table-column align="" prop="collectionAccount" label="收款账号(支付宝)" width="" /><el-table-column align="" prop="createTime" label="注册时间" width="150" /></el-table><el-paginationbackground@size-change="handleSizeChange"@current-change="handleCurrentChange":current-page="selectForm.pageStart":page-sizes="[10, 20, 30, 40]":page-size="selectForm.pageNums"layout="total, prev, pager, next":total="selectForm.total"></el-pagination></div>
</template><script>
import { table } from "@/mixins/table.js";
import {queryPersonalUserInfoForPage} from "@/api/registUser";
export default {mixins: [table],data() {return {};},created() {this.getListData()},methods:{getListData(isCheck) {this.listLoading = true;queryPersonalUserInfoForPage(this.selectForm).then((res) => {if (res.status != 0) {this.$message.error(res.msg);return;}this.startRow = res.data.startRow;this.list = res.data.list;this.selectForm.total = res.data.total;}).catch((err) => {this.$message.error(err || err.msg);}).finally(() => {this.listLoading = false;});},}
};
</script><style lang="scss" scoped>
</style>

Vue之mixins使用相关推荐

  1. vue中mixins的使用方法和注意地方

    一.什么是Mixins? mixins(混入),官方的描述是一种分发 Vue 组件中可复用功能的非常灵活的方式,mixins是一个js对象,它可以包含我们组件中script项中的任意功能选项,如dat ...

  2. vue 中 mixins 的使用

    本文同步发布在:vue 中 mixins 的使用 mixins(混入)就是定义了一部分公共的方法.计算属性或者钩子函数等 vue 组件中的可复用功能,然后混合进各个组件中使用.下面我们具体来看看怎么使 ...

  3. 【Vue】Vue中mixins的使用方法及实际项目应用详解

    文章目录 (1)mixin基础 (2)mixin特点 1.选项合并 2.方法和参数在各组件中不共享 (3)mixin与vuex的区别 (4)mixin与公共组件的区别 (5)项目实践 (6)总结 (1 ...

  4. vue中Mixins 与 Hoc

    什么是mixins 在官方文档中 混入 (mixins) 是一种分发 Vue 组件中可复用功能的非常灵活的方式.混入对象可以包含任意组件选项.当组件使用混入对象时,所有混入对象的选项将被混入该组件本身 ...

  5. mixins php,vue的mixins属性详解

    这篇文章主要介绍了vue的mixins属性详解,现在分享给大家,也给大家做个参考. 首先先给出官网 https://vuejs.org/v2/guide/mixins.html 今天在开发项目的时候要 ...

  6. vue中mixins的使用方法

    参考官网以及网上的一些资料,最基本的用法 混入 (mixin) 提供了一种非常灵活的方式,来分发 Vue 组件中的可复用功能.一个混入对象可以包含任意组件选项.当组件使用混入对象时,所有混入对象的选项 ...

  7. vue的mixins

    一.基础 提供组件选项的可复用性,比如:data.components.props.created.methods等等.当一个组件引用mixins的时候,所有mixins对象的选项将被"混合 ...

  8. Vue混入mixins

    Vue官网上介绍: 混入(mixins) 是一种分发 Vue 组件中可复用功能的非常灵活的方式.混入对象可以包含任意组件选项.当组件使用混入对象时,所有混入对象的选项将被混入该组件本身的选项. 虽然平 ...

  9. 使用vue的mixins混入实现对正在编辑的页面离开时提示

    mixins.ts 1 import { Vue, Component, Watch } from "vue-property-decorator" 2 Component.reg ...

  10. vue中mixins的理解

    我的理解是能不用就不用,除非一个js文件在多个vue页面需要使用再用例如: test.js export default {//必须导出data() {return {reqName: '23'}}, ...

最新文章

  1. 解读分库分表中间件Sharding-JDBC
  2. linux配置服务器心得体会,linux 学习 linux上搭建dhcp服务器
  3. servlet的体系结构
  4. 【android】环形进度条实现
  5. jdbc时区_什么比日期和时区更难? SQL / JDBC中的日期和时区!
  6. GIS实用小技巧(一)-如何将RTK测量数据导入CAD中?
  7. PB datawindow中的文本调整打印长度
  8. 西部数码域名解析到阿里云_西部数码云主机好吗 稳定性如何
  9. tcp报文格式_34.TCP取样器
  10. 详细整理Spring事务失效的具体场景及解决方案
  11. Python菜鸟入门:day18编程学习
  12. 闭环检测python_激光SLAM | 基于深度图的闭环检测
  13. 国家航天局:中国将论证建立月球科研基地
  14. 计算机专业涉及的英语,计算机专业英语
  15. 客户成功服务市场现状研究分析报告 -
  16. 快速锁定计算机的按键的快捷键,win7系统如何设置锁定计算机快捷键
  17. 计算机怎么让隐藏的文件夹不能搜索,电脑怎么巧妙隐藏文件夹让人找不到?隐藏电脑文件方法教程...
  18. 网络协议 -- IP地址
  19. docker 开机自启动容器docker运行自启动
  20. SQL中去除重复数据的几种方法,我一次性都告诉你​

热门文章

  1. 一个计算机爱好者的不完整回忆(三十八)我的手机
  2. mysql 数据库编码怎么看_mysql如何查看数据库编码
  3. 微信小程序开发 reLaunch与navigateTo基本页面跳转 / 解决无法跳转问题
  4. codewhy-vue2.0移动电商项目回顾
  5. 彻底理解 Raft 共识算法及 etcd/raft 源码解析
  6. 坦克大战easyx实现
  7. 购物车retrofit+ok+rxjava
  8. 以太坊java开发指南_java以太坊开发库ethereumj
  9. Vue2.0 Vue组件 单文件组件
  10. Linux入门 常用命令大全