当前位置: 首页 > news >正文

Element Plus 与 Vue 3:构建现代化 Web 应用的完美搭档

引言

Element Plus是基于Vue 3的组件库,它继承了Element UI的优秀基因,为Vue 3应用提供了丰富的界面组件。Element Plus不仅拥有与Element UI相同的高质量组件,还针对Vue 3进行了优化和更新,确保了与Vue 3的无缝集成。

环境准备

在开始使用Vue 3和Element Plus构建Web应用之前,确保你的开发环境已经准备就绪。以下是环境准备的步骤:

确保Node.js和npm/yarn已安装

1.检查Node.js版本
打开终端或命令提示符,输入以下命令来检查Node.js是否已安装以及其版本:

node -v

如果没有安装Node.js,或者安装的版本低于推荐版本,你需要从Node.js官网下载并安装最新版本。

2.检查npm/yarn版本(也可以用更高性能的pnpm)
npm是Node.js的包管理器,而yarn是另一个流行的包管理工具。你可以使用以下命令来检查npm或yarn是否已安装以及其版本:

npm -v

或者

yarn -v

如果没有安装npm或yarn,或者需要更新到最新版本,你可以根据需要进行安装或更新。

创建Vue 3项目(使用Vue CLI或Vite)

1.使用Vue CLI创建Vue 3项目
Vue CLI是一个基于Vue.js进行快速开发的完整系统。首先,确保你已经全局安装了Vue CLI:

npm install -g @vue/cli

或者

yarn global add @vue/cli

然后,创建一个新的Vue 3项目:

vue create my-vue3-project

在创建过程中,选择Vue 3作为项目版本。

2.使用Vite创建Vue 3项目(更推荐这个,性能更好)
Vite是一个现代的前端构建工具,它提供了快速的冷启动和即时热更新。首先,确保你已经全局安装了Vite:

npm install -g create-vite

或者

yarn create vite

然后,创建一个新的Vue 3项目:

create-vite my-vue3-project --template vue

或者

yarn create vite my-vue3-project --template vue

这将创建一个使用Vue 3的新项目。

安装Element Plus

Element Plus 是一个基于 Vue 3 的组件库,它提供了丰富的 UI 组件,可以帮助开发者快速构建高质量的用户界面。以下是使用 npm 或 yarn 安装 Element Plus 的步骤:

使用 npm 安装 Element Plus

在项目根目录下打开终端,执行以下命令:

npm install element-plus --save
使用 yarn 安装 Element Plus

在项目根目录下打开终端,执行以下命令:

yarn add element-plus

或者也可以使用性能更加好的pnpm 

引入 Element Plus 的 CSS 样式

安装完成后,需要引入 Element Plus 的 CSS 样式。这可以通过在项目的入口文件(通常是 main.js 或 main.ts)中添加以下代码来实现:

import 'element-plus/dist/index.css'
在 Vue 项目中全局注册 Element Plus 组件

为了在 Vue 项目中全局使用 Element Plus 组件,需要在创建 Vue 应用实例时使用 app.use() 方法来注册 Element Plus:

import { createApp } from 'vue'
import App from './App.vue'
import ElementPlus from 'element-plus'const app = createApp(App)app.use(ElementPlus)
app.mount('#app')

通过以上步骤,Element Plus 就已经成功安装并注册到你的 Vue 项目中了。现在,你可以在项目的任何组件中直接使用 Element Plus 提供的 UI 组件,无需在每个组件中单独导入。

注意事项

  • 确保你的项目是基于 Vue 3 创建的,因为 Element Plus 是专门为 Vue 3 设计的。
  • 如果你的项目使用了 TypeScript,Element Plus 也提供了类型定义,可以无缝集成。
  • Element Plus 提供了按需引入组件的功能,这可以帮助你进一步减小打包体积。你可以使用 babel-plugin-component 插件来实现按需引入。

基本使用

在 Vue 3 中,Element Plus 提供了一套丰富的组件库,用于构建现代化的用户界面。以下是如何在 Vue 3 项目中创建组件、局部注册 Element Plus 组件,并使用这些组件构建界面的步骤。

创建Vue组件

首先,你需要创建一个新的 Vue 组件。在 Vue 3 中,你可以使用单文件组件(SFC)的方式来创建组件。例如,创建一个名为 MyComponent.vue 的文件:

<template><div><el-button>默认按钮</el-button></div>
</template><script>
export default {name: 'MyComponent'
}
</script><style scoped>
/* 在这里添加组件的样式 */
</style>
在组件中局部注册Element Plus组件

在 Vue 3 中,你可以使用 <script setup> 语法来局部注册 Element Plus 组件。这允许你在单个组件中使用 Element Plus 的组件,而不需要在全局范围内注册它们。以下是如何在组件中局部注册 Element Plus 的按钮组件的示例:

<template><div><el-button>默认按钮</el-button></div>
</template><script setup>
import { ElButton } from 'element-plus'// 使用Element Plus的按钮组件
const Button = ElButton
</script><style scoped>
/* 在这里添加组件的样式 */
</style>

在上面的代码中,我们通过 import 语句从 element-plus 包中导入了 ElButton 组件,并在 <script setup> 块中将其注册为局部组件。然后在 <template> 中使用它。

使用Element Plus组件构建界面

现在,你已经了解了如何在 Vue 组件中局部注册 Element Plus 组件,接下来可以使用这些组件来构建你的界面。以下是一个使用 Element Plus 组件构建的简单界面示例:

<template><div><el-form :model="formModel" :rules="rules"><el-form-item label="用户名" prop="username"><el-input v-model="formModel.username"></el-input></el-form-item><el-form-item label="密码" prop="password"><el-input type="password" v-model="formModel.password"></el-input></el-form-item><el-form-item><el-button type="primary" @click="submitForm">登录</el-button></el-form-item></el-form></div>
</template><script setup>
import { ref } from 'vue'
import { ElForm, ElFormItem, ElInput, ElButton } from 'element-plus'const formModel = ref({username: '',password: ''
})const rules = {username: [{ required: true, message: '请输入用户名', trigger: 'blur' }],password: [{ required: true, message: '请输入密码', trigger: 'blur' }]
}
</script><style scoped>
/* 在这里添加组件的样式 */
</style>

在这个示例中,我们使用了 Element Plus 的表单组件(el-form)、表单项组件(el-form-item)、输入框组件(el-input)和按钮组件(el-button)来构建一个简单的登录表单界面。

有的小伙伴可能不明白这个表单数据是怎么传达的,以及规则如何配置,下面我们展开讲讲

使用 :model 绑定数据和 :rules 绑定规则

在 Element Plus 的表单组件中,el-form 组件的 :model 属性和 :rules 属性是用于实现表单数据绑定和表单验证的关键特性。下面将详细解释这两个属性的原理和使用思路。

:model 绑定数据

el-form 组件的 :model 属性用于绑定一个响应式对象,该对象包含了表单的所有数据字段。当表单中的输入字段发生变化时,model 对象中的相应属性也会自动更新,反之亦然。

原理:

  • :model 属性通过 Vue 的响应式系统与表单输入字段进行双向绑定。
  • 当用户在输入字段中输入数据时,输入字段的值会更新到 model 对象中对应的属性。
  • 同样,如果 model 对象中的属性值发生变化,输入字段的显示也会相应更新。

使用思路:

1.在 Vue 组件的 <script setup> 部分,使用 ref 或 reactive 创建一个响应式对象作为表单数据模型。

2.在 el-form 组件中使用 :model 属性将这个响应式对象绑定为表单的数据源。

3.在 el-form-item 组件中,使用 v-model 将输入字段与 model 对象中相应的属性进行双向绑定。

人话::model绑定对象数组,然后用v-model绑定具体对象的值

示例代码:

<template><el-form :model="formModel"><el-form-item label="用户名" prop="username"><el-input v-model="formModel.username"></el-input></el-form-item><!-- 其他表单项 --></el-form>
</template><script setup>
import { ref } from 'vue'const formModel = ref({username: '',// 其他字段
})
</script>

:rules 绑定规则(表单验证)

Element Plus 提供了一套完整的表单验证机制,使得开发者可以轻松地为表单添加验证规则,并处理验证错误。以下是如何在 Vue 3 项目中使用 Element Plus 的表单验证机制来创建带有验证规则的表单,并触发表单验证和错误处理的步骤。

Element Plus 的表单验证机制

Element Plus 的表单验证机制基于以下核心概念:

  • 验证规则(Rules):定义了表单字段需要满足的条件。这些规则可以是必填、格式匹配、自定义验证函数等。
  • 触发时机(Triggers):定义了何时触发表单验证。例如,可以设置在输入框失去焦点(blur)或用户提交表单时进行验证。
  • 错误信息(Messages):当验证失败时,显示给用户的提示信息。
创建带有验证规则的表单

在 Vue 3 组件中,你可以使用 el-form 和 el-form-item 组件来创建表单,并通过 :rules 属性为每个表单项添加验证规则。以下是一个带有验证规则的表单示例:

<template><el-form :model="formModel" :rules="rules" ref="formRef" @submit.prevent="handleSubmit"><el-form-item label="用户名" prop="username"><el-input v-model="formModel.username"></el-input></el-form-item><el-form-item label="密码" prop="password"><el-input type="password" v-model="formModel.password"></el-input></el-form-item><el-form-item><el-button type="primary" @click="submitForm">提交</el-button></el-form-item></el-form>
</template><script setup>
import { ref, reactive } from 'vue'const formModel = reactive({username: '',password: ''
})const rules = {username: [{ required: true, message: '请输入用户名', trigger: 'blur' },{ min: 3, max: 10, message: '用户名长度在 3 到 10 个字符', trigger: 'blur' }],password: [{ required: true, message: '请输入密码', trigger: 'blur' },{ min: 6, message: '密码长度不能少于 6 个字符', trigger: 'blur' }]
}const formRef = ref(null)const handleSubmit = () => {formRef.value.validate((valid) => {if (valid) {// 表单验证通过,执行提交逻辑console.log('表单提交成功', formModel)} else {// 表单验证失败,显示错误信息console.log('表单验证失败')}})
}
</script>

在这个示例中,我们定义了 formModel 作为表单的数据模型,并通过 :rules 属性为用户名和密码字段添加了验证规则。我们还使用了 el-form 的 ref 属性来获取表单的引用,并在提交时调用 validate 方法来触发表单验证。

触发表单验证和错误处理

在上面的示例中,我们通过点击提交按钮来触发表单验证。当用户点击提交按钮时,handleSubmit 方法会被调用,该方法使用 formRef.value.validate 方法来验证表单数据。如果验证通过,我们可以执行表单提交的逻辑;如果验证失败,我们可以显示错误信息或进行其他错误处理。

在 el-form-item 组件中,我们使用 prop 属性来指定要验证的字段。当表单验证失败时,Element Plus 会自动显示与该字段关联的错误信息。

el-form 组件的 :rules 属性用于绑定一个对象,该对象定义了表单验证的规则。这些规则会在表单提交时被触发,用于验证表单数据是否符合预期。

原理:

  • :rules 属性通过 Element Plus 的表单验证系统与表单输入字段进行关联。
  • 当表单提交时,Element Plus 会根据 rules 对象中定义的规则对表单数据进行验证。
  • 如果验证失败,Element Plus 会显示相应的错误信息,并阻止表单提交。

使用思路:

1.在 Vue 组件的 <script setup> 部分,定义一个对象作为表单验证规则。

2.在 el-form 组件中使用 :rules 属性将这个验证规则对象绑定到表单上。

3.在 el-form-item 组件中,使用 prop 属性指定要验证的字段。

人话:表单上用:rules绑定整个规则对象,prop接受对应的数组(数组里面包含了一条或多条规则对象)

高级特性

使用 Element Plus 的指令(如 v-loading、v-popover等)

Element Plus 提供了一些自定义指令,如 v-loading 和 v-popover,这些指令可以简化特定功能的实现。

1.v-loading
v-loading 指令用于在元素上显示加载状态。你可以将它绑定到一个布尔值,以控制加载状态的显示。

<el-button v-loading="isLoading">加载中</el-button>

2.v-popover
v-popover 指令用于创建一个弹出提示框。你可以通过绑定一个对象来配置弹出提示框的内容、触发方式等。

<el-button v-popover="popoverConfig">悬停显示</el-button><script>
export default {data() {return {popoverConfig: {title: '标题',content: '这里是内容',trigger: 'hover'}};}
}
</script>
Element Plus 的国际化(i18n)支持

Element Plus 支持国际化,允许你为应用提供多语言支持。

1.配置国际化
你需要安装 element-plus 的国际化插件,并在你的应用中配置它。

npm install element-plus --save
npm install @element-plus/icons-vue --save

2.使用国际化插件
在你的应用中,你可以使用 useElementPlusI18n 方法来配置国际化。

import { createApp } from 'vue';
import App from './App.vue';
import ElementPlus from 'element-plus';
import en from 'element-plus/lib/locale/lang/en';
import zh from 'element-plus/lib/locale/lang/zh-CN';const app = createApp(App);app.use(ElementPlus, {locale: zh // 或者 en
});app.mount('#app');

总结 

Element Plus 是一个专为 Vue 3 设计的组件库,它继承了 Element UI 的优秀基因,提供了丰富的 UI 组件,帮助开发者快速构建高质量的用户界面


资料推荐

一个 Vue 3 UI 框架 | Element Plus 官方文档

相关文章:

Element Plus 与 Vue 3:构建现代化 Web 应用的完美搭档

引言 Element Plus是基于Vue 3的组件库&#xff0c;它继承了Element UI的优秀基因&#xff0c;为Vue 3应用提供了丰富的界面组件。Element Plus不仅拥有与Element UI相同的高质量组件&#xff0c;还针对Vue 3进行了优化和更新&#xff0c;确保了与Vue 3的无缝集成。 环境准备…...

线程间通信与变量修改感知:几种常用方法

线程间通信与变量修改感知&#xff1a;几种常用方法 1. 使用volatile关键字2. 使用synchronized关键字3. 使用wait/notify/notifyAll机制4. 使用轮询&#xff08;Polling&#xff09; &#x1f496;The Begin&#x1f496;点点关注&#xff0c;收藏不迷路&#x1f496; 在Java…...

前后端通信 —— HTTP/HTTPS

目录 一、HTTP/HTTPS 简介 1、HTTP 2、HTTPS 二、HTTP 工作过程 三、HTTP 消息 1、HTTP消息结构 2、HTTP消息示例 四、HTTP 方法&#xff08;常用&#xff09; 1、GET 2、POST 3、PUT 4、DELETE 5、GET与POST对比 五、HTTP 状态码&#xff08;常用&#xff09; …...

人工智能 (AI) 应用:一个高精度ASD 诊断和照护支持系统

自闭症谱系障碍&#xff08;ASD&#xff09;是一种多方面的神经发育状况&#xff0c;影响全球大约1/100的儿童&#xff0c;而在中国&#xff0c;这一比例高达1.8%&#xff08;引用自《中国0&#xff5e;6岁儿童孤独症谱系障碍筛查患病现状》&#xff09;&#xff0c;男童为2.6%…...

C# 1.方法

方法组成&#xff1a; 1.修饰符&#xff1a;public一般定义共有的 2.方法返回值&#xff1a;void 无返回值; 非void&#xff0c;可以写成其他类型例如int&#xff0c;float&#xff0c;string,string[]等 3.方法名&#xff1a;Add 大驼峰命名法&#xff0c;每一个首字符大写。…...

【C++进阶学习】第七弹——AVL树——树形结构存储数据的经典模块

二叉搜索树&#xff1a;【C进阶学习】第五弹——二叉搜索树——二叉树进阶及set和map的铺垫-CSDN博客 目录 一、AVL树的概念 二、AVL树的原理与实现 AVL树的节点 AVL树的插入 AVL树的旋转 AVL树的打印 AVL树的检查 三、实现AVL树的完整代码 四、总结 前言&#xff1a…...

px,em,rem之间的关系换算

px,em,rem之间的换算 px&#xff1a;普通大小 em&#xff1a;相对单位&#xff0c;相对于父元素的字体大小 rem&#xff1a;相对单位&#xff0c;相对于根元素&#xff08;html&#xff09;的字体大小 <!DOCTYPE html> <html lang"en"> <head>…...

HTTP——POST请求详情

POST请求 【传输实体文本】向指定资源提交数据进行处理请求&#xff08;例如提交表单或者上传文件&#xff09;。数据被包含在POST请求体中。POST 请求可能会导致新的资源的建立或已有资源的修改。 场景&#xff1a; 1. 提交用户注册信息。 2. 提交修改的用户信息。 常见的…...

外包干了1个月,技术明显退步。。。

有一种打工人的羡慕&#xff0c;叫做“大厂”。 真是年少不知大厂香&#xff0c;错把青春插稻秧。 但是&#xff0c;在深圳有一群比大厂员工更庞大的群体&#xff0c;他们顶着大厂的“名”&#xff0c;做着大厂的工作&#xff0c;还可以享受大厂的伙食&#xff0c;却没有大厂…...

LeetCode加油站(贪心算法/暴力,分析其时间和空间复杂度)

题目描述 一.原本暴力算法 最初的想法是&#xff1a;先比较gas数组和cost数组的大小&#xff0c;找到可以作为起始点的站点(因为如果你起始点的油还不能到达下一个站点&#xff0c;就不能作为起始点)。当找到过后&#xff0c;再去依次顺序跑一圈&#xff0c;如果剩余的油为负数…...

5.1 软件工程基础知识-软件工程概述

软件工程诞生原因 软件工程基本原理&#xff08;容易被考到&#xff09; 软件生存周期 能力成熟度模型 - CMM 能力成熟度模型 - CMMI 真题...

HttpUtil工具

http工具 用到的依赖 <dependency><groupId>org.apache.httpcomponents</groupId><artifactId>httpclient</artifactId><version>4.5.13</version></dependency><dependency><groupId>org.apache.httpcomponent…...

并发编程-锁的分类

锁的分类 可重入锁&不可重入锁 可重入&#xff1a;当一个线程获取某个锁后&#xff0c;再次获取这个锁的时候是可以直接拿到的。不可重入&#xff1a;当一个线程获取某个锁之后&#xff0c;再次获取这个锁的时候拿不到&#xff0c;必须等自己先释放锁再获取。synchronized…...

K8S系列-Kubernetes基本概念及Pod、Deployment、Service的使用

一、Kubernetes 的基本概念和术语 一、资源对象 ​ Kubernetes 的基本概念和术语大多是围绕资源对象 Resource Object 来说的&#xff0c;而资源对象在总体上可分为以下两类: 1、某种资源的对象 ​ 例如节点 Node) Pod 服务 (Service) 、存储卷 (Volume&#xff09;。 2、…...

在VSCode上创建Vue项目详细教程

1.前期环境准备 搭建Vue项目使用的是Vue-cli 脚手架。前期环境需要准备Node.js环境&#xff0c;就像Java开发要依赖JDK环境一样。 1.1 Node.js环境配置 1&#xff09;具体安装步骤操作即可&#xff1a; npm 安装教程_如何安装npm-CSDN博客文章浏览阅读836次。本文主要在Win…...

Go语言入门之流程控制简述

Go语言入门之流程控制简述 1.if语句 if语句和其他语言一样&#xff0c;只不过go语言的if不需要用括号包裹 if 语句的分支代码块的左大括号与 if 关键字在同一行上&#xff0c;这是 go 代码风格的统一要求 简单实例&#xff1a; func main() {// 猜数字a : 2if a > 0 {if a…...

接口测试框架基于模板自动生成测试用例!

引言 在接口自动化测试中&#xff0c;生成高质量、易维护的测试用例是一个重要挑战。基于模板自动生成测试用例&#xff0c;可以有效减少手工编写测试用例的工作量&#xff0c;提高测试的效率和准确性。 自动生成测试用例的原理 为了实现测试用例数据和测试用例代码的解耦&a…...

C++ STL stable_sort用法

一&#xff1a;功能 对区间内元素进行排序&#xff0c;保证相等元素的顺序&#xff08;稳定排序&#xff09; 二&#xff1a;用法 #include <iostream>struct Record {std::string label;int rank; };int main() {std::vector<Record> data {{"q", 1},…...

YOLO v8进行目标检测的遇到的bug小结

OSError: [WinError 1455] 页面文件太小&#xff0c;无法完成操作。 我的python环境是放在C盘的&#xff1a; 在“我的电脑”点击鼠标右键&#xff0c;打开“属性”点击高级系统设置点击“设置”找到“高级”点击“更改”分配“虚拟内存”&#xff08;这里需要重启电脑才能生…...

FastAPI -- 第二弹(响应模型、状态码、路由APIRouter、后台任务BackgroundTasks)

响应模型 添加响应模型 from typing import Anyfrom fastapi import FastAPI from pydantic import BaseModel, EmailStrapp FastAPI()class UserIn(BaseModel):username: strpassword: stremail: EmailStrfull_name: str | None Noneclass UserOut(BaseModel):username: s…...

【Axure高保真原型】引导弹窗

今天和大家中分享引导弹窗的原型模板&#xff0c;载入页面后&#xff0c;会显示引导弹窗&#xff0c;适用于引导用户使用页面&#xff0c;点击完成后&#xff0c;会显示下一个引导弹窗&#xff0c;直至最后一个引导弹窗完成后进入首页。具体效果可以点击下方视频观看或打开下方…...

golang循环变量捕获问题​​

在 Go 语言中&#xff0c;当在循环中启动协程&#xff08;goroutine&#xff09;时&#xff0c;如果在协程闭包中直接引用循环变量&#xff0c;可能会遇到一个常见的陷阱 - ​​循环变量捕获问题​​。让我详细解释一下&#xff1a; 问题背景 看这个代码片段&#xff1a; fo…...

8k长序列建模,蛋白质语言模型Prot42仅利用目标蛋白序列即可生成高亲和力结合剂

蛋白质结合剂&#xff08;如抗体、抑制肽&#xff09;在疾病诊断、成像分析及靶向药物递送等关键场景中发挥着不可替代的作用。传统上&#xff0c;高特异性蛋白质结合剂的开发高度依赖噬菌体展示、定向进化等实验技术&#xff0c;但这类方法普遍面临资源消耗巨大、研发周期冗长…...

Day131 | 灵神 | 回溯算法 | 子集型 子集

Day131 | 灵神 | 回溯算法 | 子集型 子集 78.子集 78. 子集 - 力扣&#xff08;LeetCode&#xff09; 思路&#xff1a; 笔者写过很多次这道题了&#xff0c;不想写题解了&#xff0c;大家看灵神讲解吧 回溯算法套路①子集型回溯【基础算法精讲 14】_哔哩哔哩_bilibili 完…...

【CSS position 属性】static、relative、fixed、absolute 、sticky详细介绍,多层嵌套定位示例

文章目录 ★ position 的五种类型及基本用法 ★ 一、position 属性概述 二、position 的五种类型详解(初学者版) 1. static(默认值) 2. relative(相对定位) 3. absolute(绝对定位) 4. fixed(固定定位) 5. sticky(粘性定位) 三、定位元素的层级关系(z-i…...

【JavaSE】绘图与事件入门学习笔记

-Java绘图坐标体系 坐标体系-介绍 坐标原点位于左上角&#xff0c;以像素为单位。 在Java坐标系中,第一个是x坐标,表示当前位置为水平方向&#xff0c;距离坐标原点x个像素;第二个是y坐标&#xff0c;表示当前位置为垂直方向&#xff0c;距离坐标原点y个像素。 坐标体系-像素 …...

项目部署到Linux上时遇到的错误(Redis,MySQL,无法正确连接,地址占用问题)

Redis无法正确连接 在运行jar包时出现了这样的错误 查询得知问题核心在于Redis连接失败&#xff0c;具体原因是客户端发送了密码认证请求&#xff0c;但Redis服务器未设置密码 1.为Redis设置密码&#xff08;匹配客户端配置&#xff09; 步骤&#xff1a; 1&#xff09;.修…...

Spring是如何解决Bean的循环依赖:三级缓存机制

1、什么是 Bean 的循环依赖 在 Spring框架中,Bean 的循环依赖是指多个 Bean 之间‌互相持有对方引用‌,形成闭环依赖关系的现象。 多个 Bean 的依赖关系构成环形链路,例如: 双向依赖:Bean A 依赖 Bean B,同时 Bean B 也依赖 Bean A(A↔B)。链条循环: Bean A → Bean…...

智能AI电话机器人系统的识别能力现状与发展水平

一、引言 随着人工智能技术的飞速发展&#xff0c;AI电话机器人系统已经从简单的自动应答工具演变为具备复杂交互能力的智能助手。这类系统结合了语音识别、自然语言处理、情感计算和机器学习等多项前沿技术&#xff0c;在客户服务、营销推广、信息查询等领域发挥着越来越重要…...

根目录0xa0属性对应的Ntfs!_SCB中的FileObject是什么时候被建立的----NTFS源代码分析--重要

根目录0xa0属性对应的Ntfs!_SCB中的FileObject是什么时候被建立的 第一部分&#xff1a; 0: kd> g Breakpoint 9 hit Ntfs!ReadIndexBuffer: f7173886 55 push ebp 0: kd> kc # 00 Ntfs!ReadIndexBuffer 01 Ntfs!FindFirstIndexEntry 02 Ntfs!NtfsUpda…...