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查询. ...
随机推荐
- 比开源快30倍的自研SQL Parser设计与实践
简介: SQL作为一种领域语言,最早用于关系型数据库,方便管理结构化数据:SQL由多种不同的类型的语言组成,包括数据定义语言,数据控制语言.数据操作语言:各数据库产品都有不同的声明和实现:用户可以很方 ...
- [FAQ] html 的 select 标签 option 获取选中值的两种方式及区别
Q: 对于一个 html 的 select 标签节点 class是module_select,获取选中值使用 $('.module_select').find('option:selected' ...
- [Blockchain] 以太坊主流测试网 ropsten 和 kovan 的区别 以及 如何选择
ropsten 采用 POW (Proof-of-Work)共识机制,挖矿难度系数非常低,容易被攻击,不够低碳环保. kovan 采用 POA (Proof-of-Authority)共识机制,不需要 ...
- dotnet 提升 ToUpper 性能
在应用软件启动过程中,客户端应用软件是对性能敏感的.比如在解析命令行参数的时候,有时候需要进行字符串处理逻辑.一般来说命令行参数都是语言文化无关的,在需要进行全大写或全小写转换过程中,采用 ToUpp ...
- Go-Zero微服务快速入门和最佳实践(一)
前言 并发编程和分布式微服务是我们Gopher升职加薪的关键. 毕竟Go基础很容易搞定,不管你是否有编程经验,都可以比较快速的入门Go语言进行简单项目的开发. 虽说好上手,但是想和别人拉开差距,提高自 ...
- 【爬虫+数据清洗+可视化分析】Python舆情分析哔哩哔哩"狂飙"的评论
目录 一.背景介绍 二.爬虫代码 2.1 展示爬取结果 2.2 爬虫代码讲解 三.可视化代码 3.1 读取数据 3.2 数据清洗 3.3 可视化 3.3.1 IP属地分析-柱形图 3.3.2 评论时间 ...
- 多个docker容器如何共享网络
目录 多个docker容器如何共享网络 一.创建共享网络 二.docker-compose 启动容器共享网络 参考文档: 多个docker容器如何共享网络 一.创建共享网络 无论哪种方式,第一步都是创 ...
- Linux中的info page
Linux系统中除了使用man来查询命名或者相关文件的用法,还可以使用info命令.与man命令不同的是,info命令将数据拆成一个一个段落,每个段落使用单独的页面编写,同时页面中还有类似超链接的功能 ...
- 3种方法实现图片瀑布流的效果(纯JS,Jquery,CSS)
最近在慕课网上听如何实现瀑布流的效果:介绍了3种方法. 1.纯JS代码实现: HTML代码部分: <!DOCTYPE html> <html> <head> < ...
- java学习之旅(day.15)
IO框架 I:input O:output 流:内存与存储设备间传输数据的通道 数据借助流进行传输 流的分类 按流向分: 输入流:将存储设备中的内容读入到内存中(程序运行) 输出流:将内存中的内容写入 ...