vue2 混入 (mixin) 带来的小惊喜
最近在review自己写的代码时发现,在很多的地方都用了以下的代码块
1 async initCode() {
2 const resSource = await this.$API.syscode.list.get({
3 typeCode: "source",
4 type: 3,
5 });
6 if (resSource.code == 200) {
7 resSource.data.forEach((e) => {
8 this.sourceOptions.push({
9 label: e.name,
10 value: e.id,
11 });
12 });
13 }
14 const resLevel = await this.$API.syscode.list.get({
15 typeCode: "level",
16 type: 3,
17 });
18 if (resLevel.code == 200) {
19 resLevel.data.forEach((e) => {
20 this.levelOptions.push({
21 label: e.name,
22 value: e.id,
23 });
24 });
25 }
26 const resIndustry = await this.$API.syscode.list.get({
27 typeCode: "industry",
28 type: 3,
29 });
30 if (resIndustry.code == 200) {
31 resIndustry.data.forEach((e) => {
32 this.industryOptions.push({
33 label: e.name,
34 value: e.id,
35 });
36 });
37 }
38 const resCity = await this.$API.syscity.list.get();
39 let _tree = [];
40 resCity.data.some((m) => {
41 _tree.push({
42 id: m.id,
43 value: m.name,
44 label: m.name,
45 parentId: m.parentId,
46 });
47 });
48 this.cityOptions = this.$TOOL.changeTree(_tree);
49 },
其中主要是调用 await this.$API.syscode.list.get api接口返回一组可用的数组数据,这种代码在项目存在很多所以想有没有办法优化一下。
于是在vue官方文档中找到了这个 混入 — Vue.js (vuejs.org)
同时询问了chatgpt同样给出了相同解决方案,于是根据文档写一个了,并运行成,惊喜不错。
第一步:新建一个 mixin.js,写如下代码
export default {
data() {
return {};
},
methods: {
async mixinCodeSelect(code, type) {
const res = await this.$API.syscode.list.get({
typeCode: code,
type: type,
});
let arr = [];
if (res.code == 200) {
res.data.forEach((e) => {
arr.push({
label: e.name,
value: e.id,
});
});
}
return arr;
},
},
};
该方法是返回一个基于下拉框的数据,调用 mixinCodeSelect 方法需要传入2个参数。
第二步:在vue页面中使用
引入 import mixin from '@/utils/mixin.js';
在methods中调用minxin里面的方法即可,如下:
mounted() {
this.initCode();
},
methods: {
async initCode() {
this.typeIdOptions=await this.mixinCodeSelect('contract-type',3);
},
}
这样就简单很多了,代码看着也清爽了。
vue2 混入 (mixin) 带来的小惊喜的更多相关文章
- 用特征来实现混入(mix-in)式的多重继承
用特征来实现混入(mix-in)式的多重继承 Scala里相当于Java接口的是特征(Trait).Trait的英文意思是特质和性状(本文称其为特征),实际上他比接口还功能强大.与接口不同的是,它还可 ...
- Vue Mixin 与微信小程序 Mixins 应用
什么是Mixin(混入) Mixin是一种思想,用来实现代码高度可复用性,可以针对属性复制实现代码复用的想法进行一个扩展,就是混入(mixin).混入并不是复制一个完整的对象,而是从多个对象中复制出任 ...
- 应用三:Vue之混入(mixin)与全局混入
(注:本文适用于有一定Vue基础或开发经验的读者,文章就知识点的讲解不一定全面,但却是开发过程中很实用的) 首先介绍一下混入mixin的概念: 官方文档:混入提供了一种非常灵活的方式,来分发 Vu ...
- vue混入 (mixin)的使用
混入 (mixin) 提供了一种非常灵活的方式,来分发 Vue 组件中的可复用功能.一个混入对象可以包含任意组件选项.当组件使用混入对象时,所有混入对象的选项将被“混合”进入该组件本身的选项. 使用示 ...
- Vue之混入(mixin)与全局混入
Vue之混入(mixin)与全局混入 接下来通过一个简单的例子看看混入的基础用法: 首先新建一个mixin.js文件,添加以下代码. let mixin = { data() { return { m ...
- vue 混入 mixin,自定义指令,过滤器
vue 混入 mixin ,分发 vue 组件中重复的功能 局部的书写格式 // mixin.js var mymixin = { // 这是一个对象:对象里面的写法与组件里面的写法一模一样,组件该 ...
- vue混入mixin的使用,保证你看的明明白白!
场景描述 有些时候,我们发现有些组件部分功能代码是几乎是一样的. 这个时候,我们就可以将相同的逻辑代码抽离出来 此时我们的主角混入mixin就登场了 下面我们有a-test和b-test两个组件,点击 ...
- 在小程序中实现全局混入,以混入的形式扩展小程序的api
GitHub: https://github.com/WozHuang/mp-extend 相关文章: 小程序全局状态管理,在页面中获取globalData和使用globalSetData 通过页面预 ...
- 浅析vue混入(mixin)
vue中的混入,可以在一定程度上提高代码的复用性.通俗来说,混入类似于“继承”,当前组件对象继承于组件对象,一般情况下遵循“就近原则”.但是与继承不同的是,继承一般都跟随着属性的重写与合并,混入在不同 ...
- Spark给我们带来了什么惊喜?
Spark的一站式解决方案有很多的优势,具体如下.(1)打造全栈多计算范式的高效数据流水线 Spark支持复杂查询. 在简单的“map”及“reduce”操作之外,Spark还支持SQL查询. ...
随机推荐
- KubeVela 成为 CNCF 沙箱项目,让云端应用交付更加简单
简介: KubeVela 就是这样一个面向用户的上层平台项目.对于业务开发者来说,KubeVela 简单.易用,它可以让开发者以极低的心智负担和上手成本在 Kubernetes 上定义与部署应用... ...
- [Linux] 启动管理: 运行级别
Link:https://www.cnblogs.com/farwish/p/14983932.html
- Prometheus+Grafana+alertmanager构建企业级监控系统(三)
七.Prometheus监控扩展 7.1 Promethues 采集tomcat监控数据 tomcat_exporter地址:https://github.com/nlighten/tomcat_ex ...
- ESP32 SNTP校时
一.连接WIFI 在进行时间同步之前,先连接WIFI #include "wifi.h" #include <string.h> #include <stdlib ...
- M9K内存使用教程
M9K内存使用教程 M9K内存是Altera内嵌的高密度存储阵列.现代的FPGA基本都包含类似的不同大小的内存. M9K的每个块有8192位(包含校验位实际是9216位).配置灵活.详细了解M9K可参 ...
- Solution Set - 矩阵加速
A[HDU2604]求不含子串010和000的,长为\(n\)的01序列数. B[HDU6470]数列\(\{a_n\}:a_1=1,a_2=2,a_n=a_{n-1}+2a_{n-2}+n^3\), ...
- 【GUI界面软件】抖音评论采集:自动采集10000多条,含二级评论、展开评论!
目录 一.背景说明 1.1 效果演示 1.2 演示视频 1.3 软件说明 二.代码讲解 2.1 爬虫采集模块 2.2 软件界面模块 2.3 日志模块 三.获取源码及软件 一.背景说明 1.1 效果演示 ...
- 检索增强生成(RAG)实践:基于LlamaIndex和Qwen1.5搭建智能问答系统
检索增强生成(RAG)实践:基于LlamaIndex和Qwen1.5搭建智能问答系统 什么是 RAG LLM 会产生误导性的 "幻觉",依赖的信息可能过时,处理特定知识时效率不高, ...
- Linux定时任务实现每秒执行一次
编写/root/test.sh脚本 该方法适用于调度周期能被60整除的情况 #!/bin/bash step=1 for (( i = 0; i < 60; i = (i+step) )); d ...
- iOS中atomic修饰符的底层实现
在iOS中,atomic表示一个类的属性getter/setter具有原子性.那么iOS底层是如何保证这种原子性的呢? 我们有一个类A,它有一个属性X具有atomic: @property (atom ...