Vue2 day-02
目录
一. Vue脚手架(Vue CLI)
1.1 安装新版本的Vue脚手架@vue/cli
1.2 用命令创建Vue项目
1.2.1 命令创建vue项目
1.2.2 默认创建
1.2.3 自定义创建
1.2.4 基于ui界面创建Vue项目
1.3 分析Vue脚手架生成的项目结构及代码执行
1.3.1 默认创建文件结构
1.3.2 分开放置文件的文件含义
1.3.3 主要文件及含义
assets和public目录的区别:
1.3.4 项目架构的了解
1.4 webpack和vue脚手架的关系
1.5 Vue脚手架的自定义配置
1.5.1 通过单独的配置文件进行配置,创建vue.config.js
1.5.2_eslint了解
1.5.3 单vue文件讲解
1.6 vscode插件安装
脚手架使用总结
步骤
1.7 Yarn(补充)
1.7.1 Yarn是什么?
1.7.2 Yarn和npm(Node Package Manager)命令对比
1.7.3 npm的未来:npm5.0之后
1.7.4 npm和yarn切换包管理器
二.v-bind
2.1 绑定 href/src
2.2绑定class(重要)
1) 绑定数组
2) 绑定对象
3) 总和
2.3 绑定style
1)对象
2)属性
3)数组
2.4 动态属性(了解)
三. 分支结构(重点)
3.1 v-if 使用场景
3.2 v-if和v-show的区别
四. 循环结构 v-for(重点)
4.1 普通数组
4.2 对象
4.3 数组对象
4.4 字符串
4.5 数值
4.6 v-for 中的key值
4.7 不推荐同时使用 v-if 和 v-for
一. Vue脚手架(Vue CLI)
Vue CLI 是一个基于 Vue.js 进行快速开发的完整系统,通过 @vue/cli
实现的交互式的项目脚手架,脚手架是为了保证各施工过程顺利进行而搭设的工作平台。
工程化开发方式:这是最推荐, 企业常用的方式
vue/cli的好处
-
不需要配置打包设置
-
babel支持
-
less支持
-
开发服务器支持
1.1 安装新版本的Vue脚手架@vue/cli
Vue Cli官网
npm install -g @vue/cli
npm install -g @vue/cli@4
-
查看
vue
脚手架版本
vue -V
总结: 如果出现版本号就安装成功, 否则失败
1.2 用命令创建Vue项目
1.2.1 命令创建vue项目
vue create 项目名
#其中my-project为项目名
vue create my-project
注意: 项目名不能带大写字母, 中文和特殊符号或者和下载的包依赖名称相同
1.2.2 默认创建
1.2.3 自定义创建
-
选择Manually select features(选择特性以创建项目)
-
勾选特性可以用空格进行勾选。
-
选择版本
-
ESLint选择:ESLint + Standard config
ESLint with error prevention only 指仅用于错误预防 ESLint + Airbnb config 指ESLint 和Airbnb代码规范 ESLint + Standard config 指ESLint 和Standard代码规范 ESLint + Prettier 指ESLint 和Prettier代码规范
-
何时进行ESLint语法校验:Lint on save
-
babel,postcss等配置文件如何放置
In dedicated config files 独立文件放置 In package.json 放package.json里
-
是否保存为模板:n
-
进入脚手架项目下, 启动内置的热更新本地服务器
npm run serve # 或 yarn serve
1.2.4 基于ui界面创建Vue项目
输入命令:vue ui 在自动打开的创建项目网页中配置项目信息。
1.3 分析Vue脚手架生成的项目结构及代码执行
1.3.1 默认创建文件结构
my-project # 项目目录├── node_modules # 项目依赖的第三方包├── public # 静态文件目录├── favicon.ico# 浏览器小图标├── index.html # 单页面的html文件(网页浏览的是它)├── src # 业务文件夹├── assets # 静态资源└── logo.png # vue的logo图片├── components # 组件目录└── HelloWorld.vue # 欢迎页面vue代码文件 ├── App.vue # 整个应用的根组件├── main.js # 入口js文件├── .gitignore # git提交忽略配置├── babel.config.js # babel配置文件--babel是一个JS编译器,兼容低版本浏览器,引入babel,将es6转为es5├── jsconfig.json #如果想要更改默认的webpack配置时,可以通过jsconfig.json文件├── package.json # 依赖包列表├── README.md # 项目说明├── packge-lock.json # 项目包版本锁定├── vue.config.js #vue文件编译时的配置文件
1.3.2 分开放置文件的文件含义
.browserslistrc:在使用脚手架搭建项目时,会自动生成.browserslistrc文件,该文件是配置兼容浏览器
.editorconfig:配置和格式化代码
.eslintrc.js:是一个名为eslint的工具的配置文件
1.3.3 主要文件及含义
node_modules:依赖包目录
public:静态资源目录
src:源码目录
src/assets:静态资源目录
src/components:组件目录
src/App.vue:根组件
src/main.js:入口js
babel.config.js:babel配置文件--babel是一个JS编译器,兼容低版本浏览器,引入babel,将es6转为es5
assets和public目录的区别:
assets和public两个目录都可以用来放置静态资源,通常将外部引入的第三方的文件放在public中,自己的文件放在assets中。
1、public文件夹
(1)路径设置时无需添加 /public,默认加载 public 文件夹下的文件
(2)public文件夹下的资源会直接编译,而不经过 webpack
2、assets文件夹
(1)assets目录中的文件会被webpack处理解析为模块依赖
(2)大多数用来存放js、css等
1.3.4 项目架构的了解
1.4 webpack和vue脚手架的关系
vue是一套渐进式(就是你需要什么就用什么,不需要什么就可以不用,强制你遵守的规则很少),自底向上增量开发(就是根据系统和硬件编写出基层的基本需求代码,再慢慢增加模块),由于他要求遵守的规则较少,你可以引不同自己需要的东西,就需要配合webpack打包工具把引入的不同模块的东西打包。
webpack是一个工具,俗称打包工具,就是把所以浏览器不能识别的东西如(less,scss)等转换为浏览器可以识别的语言如(css),因为vue中需要引入大量的各种各样的模块,所以依赖webpack ,在webpack看来一切皆模块。
1.5 Vue脚手架的自定义配置
1.5.1 通过单独的配置文件进行配置,创建vue.config.js
module.exports = {devServer:{//项目的主机名:localhost,127.0.0.1或者具体ip地址host: '127.0.0.1',//项目的端口号port:8881,//项目启动自动打开浏览器open:true}
}
1.5.2_eslint了解
eslint的作用, 它是一个代码检查工具,代码不严谨会出现错误,页面加载不出来
方式1: 手动解决掉错误, 以后项目中会讲如何自动解决
方式2: 暂时关闭eslint检查(因为现在主要精力在学习Vue语法上), 在vue.config.js中配置后重启服务
module.exports = {// ...其他配置lintOnSave: false // 关闭eslint检查}
1.5.3 单vue文件讲解
-
单vue文件好处, 独立作用域互不影响
-
Vue推荐采用,vue文件来开发项目,vue文件-独立模块-作用域互不影响
-
template里只能有一个根标签
-
style配合scoped属性, 保证样式只针对当前template内标签生效
-
Vue文件打包起来插入到index.html, 然后在浏览器运行
<!-- template必须, 只能有一个根标签, 影响渲染到页面的标签结构 -->
<template><div>欢迎使用vue</div>
</template><!-- js相关 -->
<script>
export default {name: 'App'
}
</script><!-- 当前组件的样式, 设置scoped, 可以保证样式只对当前页面有效 -->
<style scoped>
</style>
1.6 vscode插件安装
vue文件代码高亮插件-vscode中安装
脚手架使用总结
步骤
第一步:进行全局安装,仅第一次执行(警告忽略)
npm install -g @vue/cli第二步:切换到需要创建项目的目录,使用命令行创建项目
vue create xxx第三步:启动项目
npm run serve
1.7 Yarn(补充)
1.7.1 Yarn是什么?
Yarn是由Facebook、Google、Exponent 和 Tilde 联合推出了一个新的 JS 包管理工具 ,正如官方文档中写的,Yarn 是为了弥补 npm 的一些缺陷而出现的。
安装:
-
通过安装包安装,也可以通过npm安装:
npm install yarn -g
-
通过安装包安装
1.7.2 Yarn和npm(Node Package Manager)命令对比
npm | yarn |
---|---|
npm install | yarn |
npm install vue | yarn add vue |
npm uninstall vue | yarn remove vue |
npm install vue --save-dev/-D | yarn add vue --dev |
npm install -g @vue/cli | yarn global add @vue/cli |
1.7.3 npm的未来:npm5.0之后
有了yarn的压力之后,npm做了一些类似的改进。
-
默认新增了类似yarn.lock的 package-lock.json;
-
git 依赖支持优化:这个特性在需要安装大量内部项目,或需要使用某些依赖的未发布版本时很有用。在这之前可能需要使用指定 commit_id 的方式来控制版本。
-
文件依赖优化:在之前的版本,如果将本地目录作为依赖来安装,将会把文件目录作为副本拷贝到 node_modules 中。而在 npm5 中,将改为使用创建 symlinks 的方式来实现,这将会提升安装速度。目前yarn还不支持。
1.7.4 npm和yarn切换包管理器
用户目录下找到
将 "packageManager": "npm" --> 修改为 "packageManager": "yarn",
二.v-bind
v-bind 指令被用来响应地更新 HTML 属性
2.1 绑定 href/src
-
v-bind:href 可以缩写为 :href;
<!-- 绑定一个属性 -->
<a v-bind:href="url">百度</a>
<img v-bind:src="imageSrc">
<!-- 缩写 -->
<a :href="url">百度</a>
<img :src="imgLog" alt="">
<script>//导入
import logosrc from "./assets/logo.png"
export default {name: "App",components: {},data() {return {msg1:"hello , vue!!!",msg2:"http://www.baidu.com",imageSrc:"https://cdn4.buysellads.net/uu/1/41334/1550855391-cc_dark.png",imgLog:logosrc};},
};
</script>
2.2绑定class(重要)
-
我们可以给v-bind:class 一个对象,以动态地切换class。
-
注意:v-bind:class指令可以与普通的class特性共存
v-bind 中支持绑定一个对象 如果绑定的是一个对象,则键对应的类名值为对应data中的数据
1) 绑定数组
v-bind 中支持绑定一个数组,数组中classA和 classB 对应为data中的数据
这里的classA 对用data 中的 classA 这里的classB 对用data 中的 classB
<ul class="box" :class="[classA, classB]"><li>学习Vue</li><li>学习Node</li><li>学习React</li>
</ul>
<script>
...
data() {return {classA: "a",classB: "b",};},
</script>
2) 绑定对象
<ul class="box" ><li :class="{a:true}">学习Vue</li><li :class="{a:false}">学习Node</li><li :class="{a:flag}">学习React</li>
</ul>
<script>
...
data() {return {flag:true};},
</script>
3) 总和
<ul class="box" ><li :class="class1">学习Vue</li><li :class="class2">学习Node</li><li :class="class3">学习React</li>
</ul>
<script>
...
data() {return {class1:'a',class2:['a','b'],class3:{a:true,b:true,c:false}};},
</script>
2.3 绑定style
1)对象
<div v-bind:style="styleObject">绑定样式对象</div>
<script>
data() {return {styleObject:{width:"200px",height:"200px",backgroundColor:"red"}
}
</script>
2)属性
<!-- CSS 属性名可以用驼峰式 (camelCase) 或短横线分隔 (kebab-case,记得用单引号括起来) --><div v-bind:style="{ color: activeColor, fontSize: fontSize,background:'red' }">内联样式</div><script>
data() {return {activeColor:'blue',fontSize:"20px"
}
</script>
3)数组
<!--组语法可以将多个样式对象应用到同一个元素 -->
<div v-bind:style="[styleObject, styleObj2]"></div>
<script>
data() {return {styleObject:{width:"200px",height:"200px",backgroundColor:"red"},styleObj2:{border:"10px solid black"}
}
</script>
2.4 动态属性(了解)
<div :[attrname]="attrvalue">动态属性名称绑定</div>
<script>data() {return {attrname:"id",attrvalue:"1"};},
</script>
三. 分支结构(重点)
3.1 v-if 使用场景
-
1- 多个元素 通过条件判断展示或者隐藏某个元素。或者多个元素
-
2- 进行两个视图之间的切换
<div><div v-if="score >= 90">优秀</div><div v-else-if="score > 80">良好</div><div v-else-if="score > 60">及格</div><div v-else>不及格</div></div><div><span v-if="sex=='男'">男</span><span v-else-if="sex=='女'">女</span><span v-else>保密</span></div>
3.2 v-if和v-show的区别
-
v-if是动态的向DOM树内添加或者删除DOM元素
-
v-if切换有一个局部编译/卸载的过程,切换过程中合适地销毁和重建内部的事件监听和子组件
-
v-show本质就是标签display设置为none,控制隐藏
-
v-show只编译一次,后面其实就是控制css,而v-if不停的销毁和创建,某些情况下v-show性能更好一点。
<span v-show="flag">隐藏显示</span>
四. 循环结构 v-for(重点)
4.1 普通数组
-
用于循环的数组里面的值是普通元素
<li v-for="item, index in items" :key="index">
{{item}} ---------- {{ index}}
</li>
<script>data() {return {items: ["张三", "李四", "王五"],}}
</script>
4.2 对象
<li v-for="( value, key, index) in obj" :key="index">
{{ value }} ---------- {{ key }} -----------{{ index }}
</li>
<script>data() {return {obj: {name: "张三",age: 12,sex: "男",clazz: "火花225",},}}
</script>
4.3 数组对象
<li v-for="( item, index) in items" :key="item.id">
{{ item.id }} ---{{item.name}}--------{{ index }}
</li>
<script>data() {return {items: [{id:1,name:"张三1"},{id:2,name:"张三2"},{id:3,name:"张三3"},{id:4,name:"张三4"},],}}
</script>
4.4 字符串
<li v-for="( item, index) in str" :key="index">
{{ item }} ---------{{ index }}
</li>
<script>data() {return {str:"hello world",}}
</script>
4.5 数值
<li v-for="( item, index) in str" :key="index">
{{ item }} ---------{{ index }}
</li>
<script>data() {return {num:20,}}
</script>
4.6 v-for 中的key值
Vue实现了一套虚拟DOM,使我们可以不直接操作DOM元素,只操作数据便可以重新渲染页面。而隐藏在背后的原理便是其高效的Diff算法,我们将在下节详细讲解key值得意义。
4.7 不推荐同时使用 v-if
和 v-for
-
当
v-if
与v-for
一起使用时,v-for
具有比v-if
更高的优先级。
相关文章:

Vue2 day-02
目录 一. Vue脚手架(Vue CLI) 1.1 安装新版本的Vue脚手架vue/cli 1.2 用命令创建Vue项目 1.2.1 命令创建vue项目 1.2.2 默认创建 1.2.3 自定义创建 1.2.4 基于ui界面创建Vue项目 1.3 分析Vue脚手架生成的项目结构及代码执行 1.3.1 默认创建文件结构 1.3.2 分开放置文…...

什么?!新版 Node.js V22.5 自带 SQLite 模块啦
前言 2024年7月,Node.js V22.5.0 版本发布,自带了 SQLite 模块,意味着开发者可以直接在程序中使用 SQLite 数据库,而无需引入第三方库👍。 话不多说,感觉来体验一波✈。 安装/升级 我现在用的是21.4.0版…...

Maven持续集成(Continuous integration,简称CI)版本友好管理
从Maven 3.5.0-beta-1 版本开始可以在pom文件中使用 r e v i s i o n 、 {revision}、 revision、{sha1}、${changelist}做为版本的占位符。 一、单module简单使用${revision}的场景 <project><modelVersion>4.0.0</modelVersion><parent><groupId…...

EvoSuite使用总结
1.安装EvoSuite插件 以IDEA为例,在Plugins栏搜索EvoSuite后点击install,安装完成后重启IDEA 2.使用EvoSuite 选中文件右键选择Run EvoSuite 生成成功可以看到如下提示: 注意事项: 生成路径:src/test/java 使用juni…...

Cortex-A7:简单中断处理(不可嵌套中断)机制
0 参考资料 ARM Cortex-A(armV7)编程手册V4.0.pdf ARM体系结构与编程第2版1 前言 Cortex-M系列内核MCU中断硬件原生支持嵌套中断,开发者不需要为了实现嵌套中断而进行额外的工作。但在Cortex-A7中,硬件原生是不支持嵌套中断的,这从Cortex-A…...

k8s HPA
水平自动扩容和缩容HPA HPA全称Horizontal Pod Autoscaler,即pod水平自动伸缩。HPA可以基于CPU利用率对replication controller、deployment和replicaset中的pod数量进行自动扩缩容(除了CPU利用率,也可以基于其他应用程序提供的度量指标cust…...

5G移动网络运维实验(训)室解决方案
随着第五代移动通信技术(5G)的快速普及和工业互联网的迅猛发展,全球制造业正面临着前所未有的深刻变革。5G技术凭借其超高的传输速率、极低的延迟以及大规模的连接能力,为工业自动化、智能制造等领域带来了革命性的技术支持。为了…...

单片机学习笔记
一、单片机帝国的诞生与发展 1.1 单片机的基本概念 单片机是一种集成电路芯片,采用超大规模的集成电路把具有数据处理功能的中央处理器存储器、输入输出端口、外围电路和相关外设集成在一块硅片上构成一个小而完整的微型计算机系统。 一般而言,单片机也…...

SpringBoot中@Value获取值和@ConfigurationProperties获取值用法及比较
SpringBoot中Value获取值和ConfigurationProperties获取值用法及比较 更新时间:2024年08月08日 09:41:48 作者:岳轩子 在Spring Boot中,Value注解是一个非常有用的特性,它允许我们将外部的配置注入到我们的Bean中,ConfigurationProperties用于将配置文件…...

执行任务赚积分
题目描述 现有N个任务需要处理,同一时间只能处理一个任务,处理每个任务所需要的时间固定为1。 每个任务都有最晚处理时间限制和积分值,在最晚处理时间点之前处理完成任务才可获得对应的积分奖励。 可用于处理任务的时间有限,请问…...

使用TLS解决Docker API暴露2375端口的问题
问题起因 由于本人开发环境是在 Windows,开发完成后需要使用 Dockerfile 打包镜像,这个过程需要有一个 Docker 服务完成,Windows 安装 Docker 会影响到很多环境,我又不想本地开虚拟机使用 Docker,于是我就索性使用服务…...

Pyspark中catalog的作用与常用方法
文章目录 Pyspark catalog用法catalog 介绍cache 缓存表uncache 清除缓存表cleanCache 清理所有缓存表createExternalTable 创建外部表currentDatabase 返回当前默认库tableExists 检查数据表是否存在,包含临时视图databaseExists 检查数据库是否存在dropGlobalTemp…...

聚焦2024数博会|与天空卫士一起探索AI与数据安全的融合应用
中国国际大数据产业博览会(简称数博会),是全球首个以大数据为主题的博览会,自2015年创办以来,经过多年的深厚沉淀,数博会已发展成为国际知名、引领前沿趋势的专业展示合作平台。 2024年8月28日至30日&#…...

实战docker第二天——cuda11.8,pytorch基础环境docker打包
在容器化环境中打包CUDA和PyTorch基础环境,可以将所有相关的软件依赖和配置封装在一个Docker镜像中。这种方法确保了在不同环境中运行应用程序时的一致性和可移植性: Docker:提供了容器化技术,通过将应用程序及其所有依赖打包在一…...

企业数字化转型的利器:RFID资产管理系统
在当今数字化时代,资产管理的效率和精确度对企业的成功至关重要。常达智能物联的RFID资产管理系统,凭借其高效、智能的管理方式,成为众多企业在数字化转型中的关键工具。 RFID资产管理系统的核心优势 一、精准资产定位与追踪 常达智能物联的…...

matplotlib中文乱码问题
在使用Matplotlib进行数据可视化的过程中,经常会遇到中文乱码的问题。显示乱码是由于编码问题导致的,而matplotlib 默认使用ASCII 编码,但是当使用pyplot时,是支持unicode编码的,只是默认字体是英文字体,导…...

提高开发效率的实用工具库VueUse
VueUse中文网:https://vueuse.nodejs.cn/ 使用方法 安装依赖包 npm i vueuse/core单页面使用(useThrottleFn举例) import { useThrottleFn } from "vueuse/core"; // 表单提交 const handleSubmit useThrottleFn(() > {// 具…...

【数据结构】你真的学会了二叉树了吗,来做一做二叉树的算法题及选择题
文章目录 1. 二叉树算法题1.1 单值二叉树1.2 相同的树1.3 另一棵树的子树1.4 二叉树的遍历1.5 二叉树的构建及遍历 2. 二叉树选择题3. 结语 1. 二叉树算法题 1.1 单值二叉树 https://leetcode.cn/problems/univalued-binary-tree/description/ 1.2 相同的树 https://leetco…...

压力测试知识总结
压力测试知识总结 引言 随着信息技术的飞速发展,软件系统在各个行业中的应用越来越广泛,其稳定性和可靠性成为用户关注的焦点。压力测试作为软件测试中的一种重要方法,对于确保软件在高负载环境下的稳定性和可靠性具有重要意义。本文将从压…...

@import导入样式以及scss变量应用与static目录
import函数:使用import语句可以导入外联样式表,import后跟需要导入的外联样式表的相对路径,用;表示语句结束。 static目录:就是无论你有没有在这个目录里用过,它都会进行编译打包 import函数应用:先在在项目里创建一个common 目录, 目录里面分别创建css,…...

分类中的语义一致性约束:助力模型优化
前言 这里介绍一篇笔者在去年ACL上发表的一篇文章,使用了空间语义约束来提高多模态分类的效果,类似的思路笔者也在视频描述等方向进行了尝试,也都取得了不错的效果。这种建模时对特征进行有意义的划分和约束对模型还是很有帮助的,…...

前端框架介绍
前端框架是Web开发中不可或缺的工具,它们通过提供结构化的开发方式、模块化组件、响应式设计以及高效的性能优化,极大地简化了Web应用程序的开发过程。以下是对当前主流及新兴前端框架的详细介绍,这些框架不仅涵盖了广泛的功能,还…...

java基础知识-JVM知识详解
文章目录 一、JVM内存结构二、常见垃圾回收算法1. 标记-清除算法(Mark-Sweep Algorithm)2. 标记-整理算法(Mark-Compact Algorithm)3. 复制算法(Copying Algorithm)4. 分代收集算法(Generational Collection)5. 增量收集算法(Incremental Collection)6. 并行收集算法…...

流动会场:以声学专利为核心的完美移动场地—轻空间
流动会场作为一种全新的活动场所选择,凭借其便捷的移动性与先进的声学设计,正逐渐成为各类演出、会议和文化活动的热门场地。其独特之处不仅在于搭建速度快、灵活性高,还在于其核心技术——声学专利的强大支持。 专利声学设计,打造…...

深度学习(一)-感知机+神经网络+激活函数
深度学习概述 深度学习的特点 优点 性能更好 不需要特征工程 在大数据样本下有更好的性能 能解决某些传统机器学习无法解决的问题 缺点 小数据样本下性能不如机器学习 模型复杂 可解释性弱 深度学习与传统机器学习相同点 深度学习、机器学习是同一问题不同的解决方法 …...

目标检测-YOLOv4
YOLOv4介绍 YOLOv4 是 YOLO 系列的第四个版本,继承了 YOLOv3 的高效性,并通过大量优化和改进,在目标检测任务中实现了更高的精度和速度。相比 YOLOv3,YOLOv4 在框架设计、特征提取、训练策略等方面进行了全面升级。它在保持实时检…...

一台笔记本电脑的硬件都有哪些以及对应的功能
一台笔记本电脑的硬件通常包括多个关键组件,这些组件共同协作,确保电脑的正常运行。以下是笔记本电脑的主要硬件及其功能: 1. 中央处理器(CPU) 功能:CPU 是电脑的“大脑”,负责处理所有的计算…...

【程序分享1】第一性原理计算 + 数据处理程序
【1】第一性原理计算 数据处理程序 SMATool 程序:VASP QE 零温 有限温度 拉伸、剪切、双轴、维氏硬度的计算 ElasTool v3.0 程序:材料弹性和机械性能的高效计算和可视化工具包 VELAS 程序:用于弹性各向异性可视化和分析 Phasego 程序…...

【数据结构】栈与队列OJ题(用队列实现栈)(用栈实现队列)
目录 1.用队列实现栈oj题 对比 一、初始化 二、出栈 三、入栈 四、取队头元素: 2.用栈实现队列 一、定义 二、入队列 三、出队列 四、队头 五、判空 前言:如果想了解什么是栈和队列请参考上一篇文章进来一起把【数据结构】的【栈与队列】狠…...

element-ui打包之后图标不显示,woff、ttf加载404
1、bug 起因 昨天在 vue 项目中编写 element-ui 的树形结构的表格,发现项目中无法生效,定位问题之后发现项目使用的 element-ui 的版本是 2.4.11 。看了官方最新版本是 2.15.14,然后得知 2.4.11 版本是不支持表格树形结构的。于是决定升级 el…...