(window.webpackJsonp = window.webpackJsonp || []).push(
[
["AllSearch~Phone"], // 模块名称
{
"1a26": function (e, t, a) { },
"597a": function (e, t, a) {
"use strict";
var r = a("8f30"); a.n(r).a
},
"8f30": function (e, t, a) { },
aa82: function (e, t, a) {
"use strict";
a("b0c0"),
a("4ec9"),
a("d3b7"),
a("ac1f"),
a("25f0"),
a("3ca3"),
a("1276"),
a("ddb0");
var r = a("71b2"),
s = a("c1df"),
n = a.n(s),
o = new Map;
o.set("callTime", "通话时间"),
o.set("talkTime", "通话时长"),
o.set("caller", "通话人"),
o.set("callPhone", "通话号码"),
o.set("answerMeFlag", "是否本人接听"),
o.set("attention", "对应留言编号"),
o.set("realAttentionFlag", "留言内容是否属实"),
o.set("experienceMeFlag", "留言内容是否本人亲身经历"),
o.set("remarks", "沟通情况简述");
var l = {
components: { modal: r.a },
props: {
telRecord: { type: Object, default: function () { } },
prop_record: { type: Object, default: function () { } }
},
data: function () {
return {
formLayout: "horizontal",
form: this.$form.createForm(this),
cache_item: {},
operationRecord: [],
savecallTime: n()().format("YYYY-MM-DD HH:mm:ss"),
saveLoading: !1,
word: 0,
phonemodel: !1
}
},
watch: {
prop_record: {
handler: function () {
this.init()
},
deep: !0
}
},
mounted: function () {
this.init()
},
methods: {
init: function () {
"phone" === this.$route.name ? (this.form.setFieldsValue({
talkTime: this.prop_record.talkTime,
caller: this.prop_record.caller,
callPhone: this.prop_record.callPhone,
answerMeFlag: this.prop_record.answerMeFlag,
attention: this.prop_record.attention,
realAttentionFlag: this.prop_record.realAttentionFlag,
experienceMeFlag: this.prop_record.experienceMeFlag,
remarks: this.prop_record.remarks
}),
this.savecallTime = this.prop_record.callTime,
this.cache_item = Object.assign({}, this.prop_record),
this.word = this.prop_record.remarks.length
) : (this.phonemodel = !0, this.form.setFieldsValue({
caller: this.prop_record.name,
callPhone: this.prop_record.phone,
attention: this.prop_record.eventCode,
callTime: n()(),
remarks: "" }))
},
moment: n.a,
range: function (e, t) {
for (var a = [], r = e; r < t; r++)a.push(r);
return a
},
disabledDate: function (e) {
return e && e > n()().endOf("day")
},
disabledTime: function (e) {
var t = this,
a = this.$fun.formatTime("-", ":").split(" ")[1].split(":"),
r = 0, s = 0;
return e < n()().startOf("day") ? (r = 24, s = 60) : (r = a[0], s = a[1]),
{
disabledHours: function () {
return t.range(r, 24)
},
disabledMinutes: function () {
return t.range(s, 60)
}
}
},
closeTel: function () {
this.$emit("closeTel", !1)
},
gotoPhone: function () {
var e = String(this.prop_record.phone);
this.telRecord.isVisible = !1,
this.$router.push({
path: "/phone",
query: { menuCode: "60401", tel: e }
})
},
handleSubmit: function (e) {
var t = this;
e.preventDefault(),
this.form.validateFields((function (e, a) {
if (!e)
if (t.saveLoading = !0, a.callTime = t.savecallTime, "phone" === t.$route.name) {
for (var r in a) a[r] !== t.cache_item[r] && t.operationRecord.push(o.get(r));
a.operationRecord = t.operationRecord.toString() || null,
a.id = t.prop_record.id,
t.$api.telrecord.postTelEdit(a)
.then((function (e) {
e && (t.$message.success("电话记录保存成功"), t.closeTel()),
t.saveLoading = !1
})
).catch((function () {
t.saveLoading = !1,
t.$message.error("电话记录保存失败")
})
)
} else a.eventId = t.prop_record.id,
t.$api.telrecord.postTelAdd(a)
.then((function (e) {
e && (t.$message.success("电话记录保存成功"), t.closeTel()),
t.saveLoading = !1
})
).catch((function (e) {
t.saveLoading = !1,
t.$message.error("电话记录保存失败")
})
)
}))
},
timeChange: function (e) {
this.savecallTime = null !== e ? e.format("YYYY-MM-DD HH:mm:ss") : e
},
wordslong: function (e) {
this.word = e.target.value.length
}
}
},
i = (a("ef77"), a("2877")),
c = Object(i.a)(l, (function () {
var e = this,
t = e.$createElement,
a = e._self._c || t;
return a("modal", {
attrs: { isVisible: e.telRecord.isVisible, title: e.telRecord.title, modalWidth: e.telRecord.modalWidth },
on: { cancel: e.closeTel }
},
[a("div", {
staticClass: "telcont"
},
[a("vue-scroll",
[a("div", { staticClass: "telTit" },
[
a("span", { staticClass: "spanSty1" }, [e._v("名称")]),
a("span", { staticClass: "spanSty2" }, [e._v("内容")])
]),
a("div", { staticClass: "telBody" },
[a("a-form", { attrs: { form: e.form }, on: { submit: e.handleSubmit } },
[a("a-form-item", { attrs: { label: "通话时间", colon: !1, "label-col": { span: 9 }, "wrapper-col": { span: 14, offset: 1 } } },
[a("a-date-picker", { directives: [{ name: "decorator", rawName: "v-decorator", value: ["callTime", {
initialValue: e.moment(e.prop_record.callTime, "YYYY-MM-DD HH:mm:ss"),
rules: [{ required: !0, message: "请选择通话时间" }] }],
expression: "[\n 'callTime',\n {\n initialValue: moment(\n prop_record.callTime,\n 'YYYY-MM-DD HH:mm:ss'\n ),\n rules: [{ required: true, message: '请选择通话时间' }],\n },\n ]" }],
attrs: { disabledDate: e.disabledDate, disabledTime: e.disabledTime, showTime: "", format: "YYYY-MM-DD HH:mm:ss" },
on: { change: e.timeChange, ok: e.timeChange } })
], 1
),
a("a-form-item", { attrs: { label: "通话时长(分钟)", colon: !1, "label-col": { span: 9 },
"wrapper-col": { span: 14, offset: 1 } } },
[a("a-input-number", { directives: [{ name: "decorator", rawName: "v-decorator",
value: ["talkTime", { rules: [{ required: !0, message: "请填写通话时长" }] }],
expression: "[\n 'talkTime',\n { rules: [\n { required: true, message: '请填写通话时长' }\n ] },\n ]" }],
staticClass: "talk-time",
attrs: { min: .1, step: .1, max: 9999 } })],
1
),
a("a-form-item", { attrs: { label: "通话人", colon: !1, "label-col": { span: 9 }, "wrapper-col": { span: 14, offset: 1 } } },
[a("a-input", { directives: [{ name: "decorator", rawName: "v-decorator", value: ["caller", { rules: [{ required: !0, message: "请填写通话者姓名" }, { pattern: new RegExp("[\\u4E00-\\u9FFF]+$", "g"), message: "请填写正确的通话者姓名" }, { max: 11, message: "输入内容过长" }] }], expression: "[\n 'caller',\n {\n rules: [\n { required: true, message: '请填写通话者姓名' },\n {\n pattern: new RegExp('[\\\\u4E00-\\\\u9FFF]+$', 'g'),\n message: '请填写正确的通话者姓名',\n },\n { max: 11, message: '输入内容过长' },\n ],\n },\n ]" }], attrs: { maxlength: 11 } })], 1
),
a("a-form-item", { attrs: { label: "通话号码", colon: !1, "label-col": { span: 9 }, "wrapper-col": { span: 14, offset: 1 } } },
[a("a-input", { directives: [{ name: "decorator", rawName: "v-decorator", value: ["callPhone", { rules: [{ required: !0, message: "请填写通话号码" }, { pattern: new RegExp(/^(((\+\d{2}-)?0\d{2,3}-\d{7,8})|((\+\d{2}-)?(\d{2,3}-)?([1][3,4,5,7,8][0-9]\d{8})))$/), message: "手机号位数满足11位并以1开头;座机需满足XXX-XXXXXXXX的格式" }] }], expression: "[\n 'callPhone',\n {\n rules: [\n { required: true, message: '请填写通话号码' },\n {\n pattern: new RegExp(\n /^(((\\+\\d{2}-)?0\\d{2,3}-\\d{7,8})|((\\+\\d{2}-)?(\\d{2,3}-)?([1][3,4,5,7,8][0-9]\\d{8})))$/\n ),\n message:\n '手机号位数满足11位并以1开头;座机需满足XXX-XXXXXXXX的格式',\n },\n ],\n },\n ]" }] })], 1
),
a("a-form-item", { attrs: { label: "是否本人接听", colon: !1, "label-col": { span: 9 }, "wrapper-col": { span: 6, offset: 1 } } },
[a("a-select", { directives: [{ name: "decorator", rawName: "v-decorator", value: ["answerMeFlag", { rules: [{ required: !0, message: "请选择是否本人接听" }] }], expression: "[\n 'answerMeFlag',\n {\n rules: [{ required: true, message: '请选择是否本人接听' }],\n },\n ]" }], attrs: { placeholder: "请选择" } }, [a("a-select-option", { attrs: { value: "true" } }, [e._v(" 是 ")]),
a("a-select-option", { attrs: { value: "false" } }, [e._v(" 否 ")])], 1)], 1
),
a("a-form-item", { attrs: { label: "对应留言编号", colon: !1, "label-col": { span: 9 }, "wrapper-col": { span: 14, offset: 1 } } },
[a ("a-input", { directives: [{ name: "decorator", rawName: "v-decorator", value: ["attention", { rules: [{ required: !1, message: "请填写对应留言编号" }] }], expression: "[\n 'attention',\n {\n rules: [{ required: false, message: '请填写对应留言编号' }],\n },\n ]" }], attrs: { disabled: "true", maxLength: 50 } })], 1
),
a("a-form-item", { attrs: { label: "留言内容是否属实", colon: !1, "label-col": { span: 9 }, "wrapper-col": { span: 6, offset: 1 } } },
[a("a-select", { directives: [{ name: "decorator", rawName: "v-decorator", value: ["realAttentionFlag", { rules: [{ required: !0, message: "请选择留言内容是否属实" }] }], expression: "[\n 'realAttentionFlag',\n {\n rules: [\n { required: true, message: '请选择留言内容是否属实' },\n ],\n },\n ]" }], attrs: { placeholder: "请选择" } },
[a("a-select-option", { attrs: { value: "true" } }, [e._v(" 是 ")]), a("a-select-option", { attrs: { value: "false" } }, [e._v(" 否 ")])], 1)], 1), a("a-form-item", { attrs: { label: "留言内容是否本人亲身经历", colon: !1, "label-col": { span: 9 }, "wrapper-col": { span: 6, offset: 1 } } }, [a("a-select", { directives: [{ name: "decorator", rawName: "v-decorator", value: ["experienceMeFlag", { rules: [{ required: !0, message: "请选择留言内容是否本人亲身经历" }] }], expression: "[\n 'experienceMeFlag',\n {\n rules: [\n {\n required: true,\n message: '请选择留言内容是否本人亲身经历',\n },\n ],\n },\n ]" }], attrs: { placeholder: "请选择" } },
[a("a-select-option", { attrs: { value: "true" } }, [e._v(" 是 ")]),
a("a-select-option", { attrs: { value: "false" } }, [e._v(" 否 ")])], 1)], 1
),
a("a-form-item", { attrs: { label: "沟通情况简述", colon: !1, "label-col": { span: 9 }, "wrapper-col": { span: 14, offset: 1 } } },
[a("a-textarea", { directives: [{ name: "decorator", rawName: "v-decorator", value: ["remarks", { rules: [{ required: !0, message: "请填写沟通情况简述" }, { whitespace: !0, message: "请填写沟通情况简述" }] }], expression: "[\n 'remarks',\n {\n rules: [\n { required: true, message: '请填写沟通情况简述' },\n { whitespace: true, message: '请填写沟通情况简述' },\n ],\n },\n ]" }],
staticStyle: { position: "relative", resize: "none" },
attrs: { rows: 3, maxLength: 126, placeholder: "请填写沟通情况简述" },
on: { change: function (t) { return e.wordslong(t) } } }),
a("p", { attrs: { id: "wordstotal" } }, [e._v(e._s(e.word) + "/126")])], 1)], 1)], 1)])],
1),
a("ul", { staticClass: "telfoot" },
[a("li", { staticClass: "listy1" }, [e.phonemodel ? a("button", { staticClass: "buttonsty1",
on: { click: e.gotoPhone } },
[e._v(" 查看已有记录 ")]) : e._e()]),
a("li", { staticClass: "listy2" },
[a("a-button", { staticClass: "buttonsty2", attrs: { loading: e.saveLoading },
on: { click: e.handleSubmit } }, [e._v("保存")])], 1),
a("li", { staticClass: "listy2" },
[a("button", { staticClass: "buttonsty3",
on: { click: e.closeTel } }, [e._v("关闭")])])])])
}
), [], !1, null, "1178284c", null);
t.a = c.exports },
ef77: function (e, t, a) { "use strict";
var r = a("1a26"); a.n(r).a
},
fd1f: function (e, t, a) {
"use strict";
var r = { props: ["name"] },
s = (a("597a"), a("2877")),
n = Object(s.a)(r, (function () {
var e = this.$createElement,
t = this._self._c || e;
return t("div", { staticClass: "CommTitle" },
[
t("div", { staticClass: "page-title" },
[
t("img", { staticClass: "img-header-zuos", attrs: { src: a("978d") } }),
t("span", [this._v(this._s(this.name))]),
t("img", { staticClass: "img-header-yous", attrs: { src: a("8616") } })
]),
this._t("default")
], 2) }), [], !1, null, "3a74f844", null);
t.a = n.exports }
}]);
相关推荐
数据结构之栈(Stack)的实现详解
堆栈是一种线性数据结构,其插入新元素和删除现有元素都发生在堆栈的顶部。栈(Stack)按照"后进先出"(Last-In-First-Out,LIFO)的原则存储和访问数据。栈类似于现实生活中的堆叠物体,比如一摞书或者一堆盘子。
window.webpackJsonp
说白了,第一部分的意思就是:如果window.webpackJsonp为空,就声明window.webpackJsonp为一个数组变量;第一部分理解了,第二部分就容易了,就是push参数。}],乍一看push,应该是push(a, b)这种形式,或许这些代码是前端开发故意为之,不让其他用户那么容易的理解其目的,其实前端代码再怎么混淆加密都只是时间长短而已,重要的是后端,何必呢。工作中需要查看一些网站的JS语句,打心眼里对这种语法充满了鄙夷,优雅跟它没关系,一些烂写法很难读懂,简直就是反人类,太变态了。
【Unity】Unity 跨平台及编译过程
早期的Unity跨平台是基于MONO运行时的,又通过CLS实现了跨语言。其基本思路是将各个版本的语言统一编译成CIL语言,在不同平台运行时使用CLR进行解释。有点类似于Java的jdk和jvm。 CLS(Common Language System)通用语言规范:CLS是一种规范,类似于schema,当文件被指定遵守CLS规范后,在某语言中写出不符合通用规范的代码后将被警告或报错。 MONO是一个开源工程,其中包含C#编译器,CLR运行时,以及一组类库。该工程常见了一系列符合ECMA标准的.NET工具,MO
webpack实战 -- 看准网
Webpack实战
量子密钥分发系统的设计与实现(二):光路子系统初步讨论
本文主要对量子密钥分发系统中的光路子系统方案进行了讨论。
利用绝对式编码器实现电机无限旋转的配置与优化
本文详细解析了如何利用绝对式编码器实现电机的无限旋转功能。通过切换驱动器编码器工作模式、精确计算逻辑位置范围等关键配置步骤,解决了传统方案在多圈计数溢出时的定位难题。该方案无需硬件改造,适用于大型回转台、连续供料系统等需要大范围连续绝对定位的自动化场景。
转载:webpack
js webpack
FreeRTOS任务调度实战:如何让STM32同时处理温湿度采集、OLED显示和云端通信
本文通过一个基于STM32的物联网终端项目,详细讲解了如何利用FreeRTOS实现多任务调度,同时处理温湿度采集、OLED显示和云端通信。文章深入探讨了任务规划、堆栈分配、信号量与消息队列等核心机制,并重点优化了ESP8266通信任务的非阻塞设计与稳定性,为构建响应迅速、运行可靠的嵌入式系统提供了实战指南。
网页爬虫之WebPack模块化解密(JS逆向)
然后重写 window[“webpackJsonp”] 数组的 push( ) 方法为 webpackJsonpCallback( ),也就是说 window[“webpackJsonp”].push( ) 其实执行的是 webpackJsonpCallback( ),window[“webpackJsonp”].push( )接收三个参数,第一个参数是模块的ID,第二个参数是 一个数组或者对象,里面定义大量的函数,第三个参数是要。所有的资源都是通过JavaScript渲染出来的。
Ubuntu零基础入门到精通【3.10讲】:旧版本 Ubuntu 升级与迁移路线:从 20.04 到 24.04 的完整实战指南
🏆 本文收录于 《滚雪球学 Ubuntu》 专栏。 本专栏面向有一定计算机基础,但尚未系统学习 Linux / Ubuntu 的读者,采用“滚雪球式学习法”:先装好、再会用、再理解、再优化、再实战,带你从第一次进入 Ubuntu 桌面 / 终端开始,逐步掌握 Ubuntu 的日常使用、命令操作、软件安装、系统配置、开发环境搭建与服务器部署能力。
YOLOv8架构革命:通过EfficientViT融合实现精度-速度的帕累托突破
目标检测领域长期存在精度与速度的权衡难题。视觉Transformer(ViT)的引入解决了长距离依赖问题,但其巨大的计算复杂度制约了实时应用。最新研究表明,将轻量级ViT与YOLO架构融合,可在几乎不损失推理速度的前提下,将mAP提升3-8个百分点。这种架构改进方案已在工业检测、自动驾驶、安防监控等多个领域得到验证,在保持实时性的同时显著提升了复杂场景下的检测可靠性。通过模块化设计,可以灵活适配不同规模的YOLOv8模型,为实际应用提供精度-速度的帕累托最优解。
vuejs项目性能优化总结*
vuejs项目性能优化总结 对于vuejs项目的性能优化,做了有关3方面的优化建议,主要包括:上线代码包打包、源码编写优化、用户体验优化。(下面的优化建议只在vue-cli脚手架下做过测试,详情请参考) 1.代码包优化 屏蔽sourceMap 待下项目开发完成。进行打包源码上线环节,需要对项目开发环节的开发提示信息以及错误信息进行屏蔽,一方面可以减少上线代码包的大小;另一方面提高系统的安全性。在vuejs项目的config目录下有三个文件dev.env.js(开发环境配置文件)、prod.env.js(上线
再不入坑就晚了,深度神经网络概念大整理,最简单的神经网络是什么样子?
再不入坑就晚了,深度神经网络概念大整理,最简单的神经网络是什么样子?
让你的vue项目体积更小点,打包速度更快点
前言 有时候开发完一个vue项目后,会发现项目包又大打包速度还慢,里面还有很多冗余的文件,比如图片,.vue文件,.js文件等,如果你也遇到类似问题,或者你希望你的项目包更小点,打包速度更快点,本文也许对你有所帮助。 让项目体积更小点 压缩打包的文件 包安装 npm i compression-webpack-plugin@5.0.0 -D / cnpm i compression-webpack-plugin@5.0.0 -D /yarn add compression-webpack-plugin@5.
精雕软件(JDpaint) 5.5 绿色版
精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版
LinePhone3.2.7(android端最新版本) sip客户端
SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/
Vue实战指南:Vue打包优化,Webpack的八大配置方案
此时,合理的配置不仅能够提高开发效率,还能在不影响用户体验的前提下进行频繁的更新。希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。通过为输出文件添加哈希值,使得浏览器能够缓存这些文件,在没有变化的情况下,用户再次访问时可以直接从缓存加载。通过懒加载模块,即在需要时才加载代码,而不是一开始就加载所有代码,可以有效减少初始加载时间。在生产环境下,应该启用Webpack的各种优化特性,以确保输出的代码是经过充分压缩和优化的。,为我们广大开发同胞谋福祉,
老版QQ原生表情gif动态
这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。
vue-router懒加载的三种方式
未使用懒加载 import Vue from 'vue'; import Router from 'vue-router'; import HelloWorld from '@components/HelloWorld'; Vue.use(Router); export default new Router({ routes:[ {path:'./', name:'HelloWorld', component:HelloWorld } ] }) vue异步组件 component:resolve=
VC中sqlite的使用
在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示
vue-router按需加载
使用vue-cli构建项目后,我们会在Router文件夹下面的index.js里面引入相关的路由组件,如: import Hello from '@/components/Hello' import Boy from '@/components/Boy' import Girl from '@/components/Girl' 缺点:webpack在打包的时候会把整个路由打包成一个js文件,如果页面一多,会导致这个文件非常大,加载缓慢 解决办法(按需加载) 方法一:require.ensure()实现
vue项目打包之后js文件过大怎么办?
话不多说直接上图 优化前: 优化后: 第一张图中的 1.09 M是我的项目经过打包编译之后的js文件大小,确实有点大了,第一次打开页面的时候会比较慢。所以就需要想办法来解决这个问题了。 再查看官网之后,发现官网给我们提供了一个懒加载,相当于图片懒加载,你不打开的时候是不会全部加载出来的,只有你需要用到的时候才会加载出来,也算是一种 打包优化了。 官网:https://route...
vue dll打包_几个前端小技巧,让你的vue项目体积更小点,打包速度更快点
前言有时候开发完一个vue项目后,会发现项目包又大打包速度还慢,里面还有很多冗余的文件,比如图片,.vue文件,.js文件等,如果你也遇到类似问题,或者你希望你的项目包更小点,打包速度更快点,本文也许对你有所帮助。让项目体积更小点压缩打包的文件包安装npm i compression-webpack-plugin@5.0.0 -D / cnpm i compression-webpack...
vue路由按需加载
vue路由按需加载 按需加载就是只有我们访问这个路由时才会加载这个js 为什么要按需加载 按照普通的加载方式: router.js ... import Login from '@/views/login' import Welcome from '@/views/welcome' export default new Router({ routes: [ { ...
vue-cli3 添加webpack-bundle-analyzer
一、webpack-bundle-analyzer作用 使用webpack-bundle-analyzer可以分析打包后你所打包内容的占比,从而找到最大的模块,然后让我们更加有目的,从容的去优化项目。 二、安装和配置插件 本次安装的前提是使用vue-cli3,在项目文件中创建vue.config.js(ps:vue cli3 配置文件) 使用npm或cnpm安装webpack-bundle-analyzer如下: npm install --save-dev webpack-bundle-analyzer
vue加载比html慢,vue单页面打包文件大?首次加载慢?按需加载?是你打开方式不对...
部署各vue项目,走了一遍坑。。。。vue单页面应用刷新404找到nginx多网站配置文件:类似nginx/sites-available/www.baidu.comserver {listen80;index index.html index.htm index.nginx-debian.html;server_name www.baidu.com;location/{root/mnt/www...
如何开发一个基于 Vue 的 ui 组件库
如何开发一个基于 Vue 的 ui 组件库 开发模式 预览 demo 在开发一个 ui 组件库时,肯定需要一边预览 demo,一边修改代码。 常见的解决方案是像开发一般项目一样使用webpack-dev-server预览组件,比如通过vue-cli初始化项目,或者自己配置脚本。 文艺一点儿地可能会用到parcel来简化 demo 的开发配置(比如muse-ui)。 展...
rollup从入门到打包一个按需加载的组件库
在上一篇文章中,我们学习了用webpack打包一个组件库。这次我们来学习怎么用rollup打包一个组件库。 用webpack打包一个按需加载的vue组件库 rollup 是一个 JavaScript 模块打包器,在功能上要完成的事和webpack性质一样,就是将小块代码编译成大块复杂的代码,例如 library 或应用程序。在平时开发应用程序时,我们基本上选择用webpack,相比之下,rollup.js更多是用于library打包,我们熟悉的vue、react、vuex、vue-router等都是用rol
分模块打包优化
一、问题描述 因为构建vue项目之初没有考虑到项目加载速度方面的优化问题,在开发了一段时间之后发现打包后两个js文件过大,将近有20mb,每次打开项目都会有好几秒的空白,要解决这个问题就要用到分模块打包。 二、优化 分享一种最有效也是最简单的改动。在引入路由component的地方使用函数的方式引用,代码如下: 优化前 引入语法 import login from '../src/compon...
Vue.js中用webpack合并打包多个组件并实现按需加载
对于现在前端插件的频繁更新,所以多多少少要对组件化有点了解,下面这篇文章主要给大家介绍了在Vue.js中用webpack合并打包多个组件并实现按需加载的相关资料,需要的朋友可以参考下。 前言 随着移动设备的升级、网络速度的提高,用户对于web应用的要求越来越高,web应用要提供的功能越来越。功能的增加导致的最直观的后果就是资源文件越来越大。为了维护越来越庞大的客户端代码,提...
3813



被折叠的 条评论
为什么被折叠?



