返回顶部
首页 > 资讯 > 前端开发 > JavaScript >总结vue映射的方法与混入的使用过程
  • 728
分享到

总结vue映射的方法与混入的使用过程

2024-04-02 19:04:59 728人浏览 泡泡鱼
摘要

目录Vue映射方法与混入使用v-select中的内容封装vue混入的简单用法 自定义混入全局混入vue映射方法与混入使用 v-select中的内容封装 场景:当在

vue映射方法与混入使用

v-select中的内容封装

场景:当在不同的组件中共同使用一些select的"内容"就可以将这些内容封装在一个文件里

1.cig2.0/src/contants.js

export const data = {
  whether: [
    //是/否
    { value: 1, label: "是" },
    { value: 0, label: "否" }
  ],
  hour: [
    { value: "0", label: "0" },
    { value: "1", label: "1" },
    { value: "2", label: "2" },
    { value: "3", label: "3" },
    { value: "4", label: "4" },
    { value: "5", label: "5" },
    { value: "6", label: "6" },
    { value: "7", label: "7" },
    { value: "8", label: "8" },
    { value: "9", label: "9" },
    { value: "10", label: "10" },
    { value: "11", label: "11" },
    { value: "12", label: "12" },
    { value: "13", label: "13" },
    { value: "14", label: "14" },
    { value: "15", label: "15" },
    { value: "16", label: "16" },
    { value: "17", label: "17" },
    { value: "18", label: "18" },
    { value: "19", label: "19" },
    { value: "20", label: "20" },
    { value: "21", label: "21" },
    { value: "22", label: "22" },
    { value: "23", label: "23" }
  ],
  //分钟
  minute: [
    { value: "0", label: "0" },
    { value: "30", label: "30" }
  ],
};
export function getValues(key) {
  //debugger
  return JSON.parse(jsON.stringify(data[key] || []));
}

2.在需要使用select的组件里引入【混入】

在混入文件里返回封装的select的内容应用到组件中使用select的地方

引入混入:

import MixSearch from “@/mixins/mix-search.js”;
let mixSearch = MixSearch(); //因为在mix-search.js文件里 export default 是一个function()
mixins: [mixSearch]
import {getValues} from "@/contants.js"
let cache = {}
function saveCache(key, value) {
    if (!key) return;
    if (value) {
        cache[key] = JSON.stringify(value)
    } else {
        if (!cache[key]) return
        return JSON.parse(cache[key])
    }
}
export default function (ext) {
    ext = ext || {}
    let mixin = {
        data() {
            return {
                fullscreenLoading: false,
                pageBean: {
                    pageSize: 10,
                    page: 1,
                    showTotal: true
                },
                searchModel: JSON.parse(JSON.stringify(ext))
            }
        },
        methods: {
            async payload(fn, fail) {
                try {
                    this.fullscreenLoading = true;
                    await fn()
                } catch (e) {
                    console.error(e)
                }
                this.fullscreenLoading = false;
            },
            geTKEyValues(key, opt) {
                return getValues(key, opt)
            },
            // 映射字段
            getSelectLabel(type, id) {
                for (let i = 0; i < type.length; i++) {
                    if (type[i].value == id) {
                        return type[i].label
                    }
                }
            }
        },
        created() {
            let {pageBean, searchModel} = saveCache(this.$options.name) || {}
            if (pageBean) {
                this.pageBean = pageBean;
                this.searchModel = searchModel;
            }
        },
        beforeDestroy() {
            saveCache(this.$options.name, {pageBean: this.pageBean, searchModel: this.searchModel})
        }
    }
    return mixin
}
 <div style="display: flex;justify-content: left">
                        <el-fORM-item label="更新时间期限:" class="dataTimeBox">
                          <el-select
                                  placeholder="请选择"
                                  v-model="day.hour"
                          >
                            <el-option
                                    v-for="(item,index) in getKeyValues('hour')"
                                    :key="index"
                                    :label="item.label"
                                    :value="item.value"
                            ></el-option>
                          </el-select>
                          <span> 时 </span>
                          <el-select
                                  placeholder="请选择"
                                  v-model="day.minute"
                          >
                            <el-option
                                    v-for="(item,index) in getKeyValues('minute')"
                                    :key="index"
                                    :label="item.label"
                                    :value="item.value"
                            ></el-option>
                          </el-select>
                          <span> 分</span>
                        </el-form-item>
                      </div>

vue混入的简单用法 

vue的官方文档:混入 (mixin) 提供了一种非常灵活的方式,来分发 Vue 组件中的可复用功能。一个混入对象可以包含任意组件选项。当组件使用混入对象时,所有混入对象的选项将被“混合”进入该组件本身的选项。 

简单的理解就是它可以制作一个可以复用的功能,可以复用到各个组件中,同时这个mixin功能可以使用vue组件里任意组件选项,比如data,method,watch,和各个生命周期函数。当需要运用的组件,引用它时,相当于把mixin的各个组件选项合并到引用的组件中。 

自定义混入

1.定义一个mixin文件,写入需要被复用的功能;

2.在需要使用混入功能的文件中引入;

注:混入中可以放一个类或多个类,也可以只放方法和功能,根据面向对象单一职责原则和开闭原则,排除掉放多个类,若是只放方法和功能,混入就失去类意义。

最后的总结是:混入里最好放一个类或者是多个类组合或聚合成的一个类。

3. 组件内可以修改混入中的数据,混入文件中也可以直接修改对应组件中的数据;

全局混入

定义一个全局的mixin文件

项目main.js文件中引入定义的mixins文件

然后在项目中所有文件都可以直接使用混入中定义的方法

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。

--结束END--

本文标题: 总结vue映射的方法与混入的使用过程

本文链接: https://lsjlt.com/news/145746.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 总结vue映射的方法与混入的使用过程
    目录vue映射方法与混入使用v-select中的内容封装vue混入的简单用法 自定义混入全局混入vue映射方法与混入使用 v-select中的内容封装 场景:当在...
    99+
    2024-04-02
  • vue映射的方法与怎么混入使用
    这篇文章主要介绍了vue映射的方法与怎么混入使用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇vue映射的方法与怎么混入使用文章都会有所收获,下面我们一起来看看吧。vue映射方法与混入使用v-selec ...
    99+
    2023-06-30
  • vue中的mixins混入使用方法
    目录mixinsmixins理解使用方法全局混入局部混入mixins的使用方法的复用方法的覆盖合并生命周期mixins 混合 (mixins) 是一种分发 Vue 组件中可复用功能的...
    99+
    2024-04-02
  • vue中混入mixins的使用方法
    目录前言使用方法总结前言 Vue中有一个设置项叫做混入 (mixins), 它的使用是用来做代码复用的。同时, 这个mixins 也分为局部混入和全局混入 vue中的解释是这样的,如...
    99+
    2024-04-02
  • Vue两个通信方式与动画过度及混入使用的方法是什么
    这篇文章主要介绍了Vue两个通信方式与动画过度及混入使用的方法是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Vue两个通信方式与动画过度及混入使用的方法是什么文章都会有所收获,下面我们一起来看看吧。一、全...
    99+
    2023-07-05
  • Vue混入与插件的使用介绍
    目录1. 混入2. 插件1. 混入 概述: 混入(mixins)是一种分发Vue组件中可复用功能的非常灵活的方式。混入对象可以包含任意组件选项。当组件使用混入对象时,所有混入对象的选...
    99+
    2024-04-02
  • JAVA编程中的反射用法总结
    本篇内容主要讲解“JAVA编程中的反射用法总结”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“JAVA编程中的反射用法总结”吧!目录下面对Java反射的基础知识进行说明和总结:总结下面对Java反...
    99+
    2023-06-20
  • wingIDE的安装与使用方法总结
    Wing IDE 是一个集成开发环境(IDE),主要用于编写和调试 Python 程序。以下是 Wing IDE 的安装和使用方法的...
    99+
    2023-09-14
    wingIDE
  • MySql使用mysqldump 导入与导出方法总结
    导出数据库数据: 首先打开cmd进入MySQL的bin文件夹下 1.导出education数据库里面的users表的表数据和表结构(下面以users表为例) mysqldump -u[用户名] -h[ip] -p...
    99+
    2022-05-23
    mysqldump 导入导出 MySql mysqldump
  • Vue中mixins混入的介绍与使用详解
    目录一、来自官网的描述二、如何创建Mixins三、项目中如何使用混入四、与vuex的区别五、与公共组件的区别一、来自官网的描述 混入 (mixins): 是一种分发 Vue 组件中可...
    99+
    2022-12-23
    Vue mixins混入 Vue mixins使用
  • Vue动态类的几种使用方法总结
    目录Vue动态类的几种使用点击显示或隐藏样式的做法利用三元表达式切换样式多个动态类的用法Vue class动态类名总结Vue动态类的几种使用 动态类的操作比较简单,但是很实用。 点击...
    99+
    2023-01-28
    Vue动态类 Vue动态类使用 Vue使用动态类
  • 总结Python使用过程中的bug
    Python使用过程中的bug 问题: 在vscode中, 使用 Windows PowerShell 运行 conda activate xxx (某个环境)切换环境时报错: ...
    99+
    2024-04-02
  • Java中输入与输出的方法总结
    目录输入方法第一种输入方法:scanner第二种输入方法:JOptionPane第三种输入方法:io.Console输出方法第一种输出方法:System.out.print()第二种...
    99+
    2024-04-02
  • Vue路由传递参数与重定向的使用方法总结
    目录前言概念1、vue路由传参2、vue路由重定向实际使用场景路由传参1、使用步骤2、params传参2-1、路由属性配置参数3、query传参4、url字符串拼接5、接收路由参数的...
    99+
    2022-11-13
    vue路由重定向的作用 vue路由传递参数 vue路由跳转携带参数
  • Oracle存储过程、包、方法使用总结(推荐)
    Oracle存储过程、包、方法使用总结,具体代码如示: CREATE OR REPLACE PROCEDURE MYPROCEDURE(P_ID IN VARCHAR, ...
    99+
    2024-04-02
  • VUE项目中引入JS文件的方法总结
    目录1.在index.html页面使用script标签引入2.在main.js中使用window.moduleName 使用3.手动添加export4. 使用import方式,把需要...
    99+
    2024-04-02
  • vuejs中使用mixin局部混入/全局混入的方法详解
    目录前言需求什么是mixin全局混入几个重要的疑问选项合并生命周期函数data数据冲突方法名冲突mixin的优缺点1.变量名来源不明确2. 多个mixins的生命周期会合并融合到一起...
    99+
    2024-04-02
  • javascript的setTimeout()使用方法总结
    1、前言js的setTimeout方法用处比较多,通常用在页面刷新了、延迟执行了等等。但是很多javascript新手对setTimeout的用法还是不是很了解。虽然我学习和应用javascript已经两年多了,但是对setTimeout方...
    99+
    2022-06-07
    javascript setTimeout()用法
  • bootstrap Table的使用方法总结
    本文为大家分享了bootstrap Table的使用方法,供大家参考,具体内容如下 官网资料 效果图: 案例: html <!-- 表格 --> <table...
    99+
    2024-04-02
  • Android onCreateOptionsMenu的使用方法总结
    Android onCreateOptionsMenu的使用方法总结任何一款软件都少不了对“菜单”的使用。在Android下,每一个activity都捆绑了一个Menu,要想定义和使用菜单,都必须在Activity下进行操作,复写onCre...
    99+
    2023-05-30
    android oncreateoptionsmenu roi
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作