惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

L
LINUX DO - 最新话题
C
Cyber Attacks, Cyber Crime and Cyber Security
G
GRAHAM CLULEY
T
Tenable Blog
T
Threatpost
C
CXSECURITY Database RSS Feed - CXSecurity.com
I
Intezer
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
D
Darknet – Hacking Tools, Hacker News & Cyber Security
K
Kaspersky official blog
Security Latest
Security Latest
P
Privacy & Cybersecurity Law Blog
Google Online Security Blog
Google Online Security Blog
SecWiki News
SecWiki News
P
Palo Alto Networks Blog
TaoSecurity Blog
TaoSecurity Blog
Webroot Blog
Webroot Blog
Spread Privacy
Spread Privacy
O
OpenAI News
The Last Watchdog
The Last Watchdog
P
Proofpoint News Feed
C
Check Point Blog
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
人人都是产品经理
人人都是产品经理
S
Security @ Cisco Blogs
Scott Helme
Scott Helme
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
月光博客
月光博客
S
Securelist
酷 壳 – CoolShell
酷 壳 – CoolShell
V
V2EX
T
Troy Hunt's Blog
W
WeLiveSecurity
GbyAI
GbyAI
N
News | PayPal Newsroom
Y
Y Combinator Blog
C
Cisco Blogs
H
Help Net Security
The GitHub Blog
The GitHub Blog
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
博客园 - 【当耐特】
Jina AI
Jina AI
MongoDB | Blog
MongoDB | Blog
P
Proofpoint News Feed
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
云风的 BLOG
云风的 BLOG
小众软件
小众软件
N
News and Events Feed by Topic

Dr34m's Blog

I Expect You To Die(我希望你死) 1,2,3 完整中文攻略 Linux换国内源 && docker安装 && 换加速镜像 随笔 pyinstaller打包的程序执行报错Failed to extract xxxx decompression resulted in return code -1 taoSync排除项简易教程 apscheduler的cron配置项 如何在绿联NAS中使用TaoSync同步我的文件到各个网盘 GB28181抓包记录 JS计算字节大小,把字节转换为KB/MB/GB/TB等 在Python中使用onvif管理摄像头,包括设备发现,获取RTSP地址,获取设备信息,截图,云台控制与缩放,设置时间 编写bat脚本实现对vue项目构建并压缩 内网穿透工具frp快速使用 CentOS 7.9 安装基础开发环境jdk redis nacos nginx mysql Pyinstaller 逆向 VUE实现复制与粘贴_获取剪切板内容 Electron + xterm.js + node-pty + vue 实现本地终端 child_process exec 中文乱码 Windows&Linux 解决方法 yum 更新 gcc CentOS安装并使用conda 将fluid主题博客的静态资源由第三方改为本地存储 一个上手即用的通用公众号/小程序/h5/app框架 python批量转化doc到docx SpringBoot单元测试注入空指针 TensorFlow 预测出现NaN的一种可能以及解决方法 随笔 python归一化数据 windows下python安装sasl遇到的问题及解决 将对象List中的某个字段放到新的List中[转载] Python http.server 本地服务支持跨域 TensorFlow入门 Flink学习笔记 windows本地配置spark开发环境 dataX使用 Apache Hive 学习笔记 hadoop学习笔记 element-ui 自带事件添加自定义参数 windows 11安装安卓应用程序 centos7安装zookeeper centos7安装jdk8 用idea开发spring项目过程中热重启 docker学习笔记 CentOS7安装k8s集群 通过Github Actions部署静态网站到腾讯云COS,并自动刷新CDN 用Typora编写Hexo博客时图片的处理 Hexo + Github Actions 提交代码自动部署 云服务器 腾讯云COS github-pages 常用的Linux进程基本命令 python实现微信jsapi签名 VsCode开发Python常用配置 mysql获取当期日期是该年第几周 LocalDate获取当前周周一日期 删除node_modules重新安装 基于firewalld端口转发 pip 安装 tensorflow MemoryError Java过滤html标签 mysql清空表,并让自增从0开始 JavaScript获取当前周或下n周的周n的日期 java复制不同实体类中相同的字段 前端下载二进制文件 mysql获取最近一段时间数据 python - pip换源 svn提交后jenkins自动部署 常见nginx反向代理配置 h5实现一种自动滚动的告警列表 nginx代理网站子目录到本地目录 centos下hexo + svn + jenkins实现博客自动部署 centos中jenkins配置环境变量 centos安装jenkins centos安装svn服务器 Ubuntu 20.04 换国内源 Vs Code编写md文件实现实时预览 Python自动处理依赖 海滨校园助手api使用文档 hexo-yilia主题相册 Java实现文件重命名,Java文件追加写入,java读取图片尺寸 Hexo安装配置并托管至github 新起点,新征程 在ubuntu安装jdk并配置环境变量 一个不到300行的C语言消灭敌机游戏 搭建L(Linux)+A(Apache)+M(MySQL)+P(PHP)网站环境,并安装Discuz 搭建L(Linux)+N(Nginx)+M(MySQL)+P(PHP)网站环境,并安装Wordpress NSA工具包验证之RDP漏洞利用 NSA工具包验证之IIS6.0漏洞利用 NSA工具包验证之SMB漏洞利用 SEO Ultimate 7.6.5.9汉化版(中文版)免费下载 在腾讯云服务器搭建FBCTF平台 FBCTF汉化简体中文免费下载,FBCTF更新缓存代码 wordpress发送邮件设置以及常见问题解决 短网址 一个小白的自学建站史(菜鸟建站入门) 危山 水调歌头 水调歌头
Vue3 + Element-Plus 极简速查
Dr3@m · 2026-01-12 · via Dr34m's Blog

Vue3

onMounted

1
2
3
4
import { onMounted } from 'vue';
onMounted(() => {
console.log('页面加载完成');
})

defineProps

1
2
3
4
5
6
7
8
9
10
const props = defineProps({
title: {
type: String,
default: '创建策略'
}
})

const getData = () => {
let lm = props.title;
}

1
2
3
<span>
{{title}}
</span>

watch

1
2
3
4
5
6
7
8
9
10
11
import { watch } from "vue";
watch(() => props.title, (newTitle) => {
console.log('newTitle', newTitle);
}, {
deep: true, // 深度
immediate: true // 首次也执行
});
const titleVal = ref('');
watch(titleVal, (newVal, oldVal) => {
console.log('titleVal', newVal);
});

defineExpose

1
2
3
4
5
6
7
// rst.vue
const getData = () => {
console.log('getData');
}
defineExpose({
getData
})
1
2
3
4
const rstRef = ref();
const getIt = () => {
rstRef.value.getData();
}
1
<rst ref="rstRef"></rst>

defineEmits

1
2
3
4
5
// rst.vue
const emit = defineEmits(['closeDialog'])
const close = () => {
emit('closeDialog', true);
}
1
2
3
4
const doSth = (flag) => {
console.log('flag', flag);
}
import rst from './components/rst.vue';
1
<rst @closeDialog="doSth"></rst>

Element-Plus

ElMessageBox

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
import { ElMessage, ElMessageBox } from 'element-plus';
const delItem = (id) => {
ElMessageBox.confirm('删除后不可恢复,确认删除吗?', '危险', {
cancelButtonText: '取消',
confirmButtonText: '确定',
cancelButtonType: 'success',
confirmButtonType: 'danger'
}).then(() => {
loading.value = true;
deleteIt(id).then(res => {
ElMessage({
type: 'success',
message: res.msg,
})
getData();
}).finally(() => {
loading.value = false;
})
}).catch(() => { })
}

el-table

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
const getData = () => {
// do
}
const params = ref({
pageNum: 1,
pageSize: 15
})
const tableData = ref({
dataList: [],
count: 0
})
const handleSizeChange = (val) => {
params.value.pageSize = val;
getData();
}
const handleCurrentChange = (val) => {
params.value.pageNum = val;
getData();
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<div class="center-main">
<el-table v-loading="loading" current-row-key="id" :data="tableData.dataList" stripe
style="width: 100%;height: 100%">
<el-table-column type="index" label="序号" width="60" />
<el-table-column prop="name" label="策略名称" />
<el-table-column label="操作" width="200">
<template #default="scope">
<el-button type="danger" size="small" @click="delItem(scope.row.id)">删除</el-button>
<el-button type="primary" size="small" @click="showConfig(scope.row.id)">配置</el-button>
</template>
</el-table-column>
</el-table>
<div class="page-box">
<el-pagination layout="total, sizes, prev, pager, next, jumper" :background="true"
v-model:page-size="params.pageSize" :page-sizes="[15, 50, 300, 500]"
v-model:current-page="params.pageNum" :total="tableData.count"
@size-change="handleSizeChange" @current-change="handleCurrentChange" />
</div>
</div>

el-dialog

1
2
3
4
5
6
7
const dialogShow = ref(false);
const showDialog = () => {
dialogShow.value = true;
}
const closeDialog = () => {
dialogShow.value = false;
}
1
2
3
4
5
6
7
8
9
<el-dialog top="7vh" :fullscreen="false" :before-close="closeDialog"
v-model="dialogShow" width="1200px" title="Dialog"
:append-to-body="true" :close-on-click-modal="false">
<template #footer>
<span class="dialog-footer">
<el-button type="primary" @click="closeDialog">我已知晓</el-button>
</span>
</template>
</el-dialog>