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,…...
springboot 百货中心供应链管理系统小程序
一、前言 随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱,百货中心供应链管理系统被用户普遍使用,为方…...
Python实现prophet 理论及参数优化
文章目录 Prophet理论及模型参数介绍Python代码完整实现prophet 添加外部数据进行模型优化 之前初步学习prophet的时候,写过一篇简单实现,后期随着对该模型的深入研究,本次记录涉及到prophet 的公式以及参数调优,从公式可以更直观…...
BCS 2025|百度副总裁陈洋:智能体在安全领域的应用实践
6月5日,2025全球数字经济大会数字安全主论坛暨北京网络安全大会在国家会议中心隆重开幕。百度副总裁陈洋受邀出席,并作《智能体在安全领域的应用实践》主题演讲,分享了在智能体在安全领域的突破性实践。他指出,百度通过将安全能力…...
听写流程自动化实践,轻量级教育辅助
随着智能教育工具的发展,越来越多的传统学习方式正在被数字化、自动化所优化。听写作为语文、英语等学科中重要的基础训练形式,也迎来了更高效的解决方案。 这是一款轻量但功能强大的听写辅助工具。它是基于本地词库与可选在线语音引擎构建,…...
HarmonyOS运动开发:如何用mpchart绘制运动配速图表
##鸿蒙核心技术##运动开发##Sensor Service Kit(传感器服务)# 前言 在运动类应用中,运动数据的可视化是提升用户体验的重要环节。通过直观的图表展示运动过程中的关键数据,如配速、距离、卡路里消耗等,用户可以更清晰…...
浪潮交换机配置track检测实现高速公路收费网络主备切换NQA
浪潮交换机track配置 项目背景高速网络拓扑网络情况分析通信线路收费网络路由 收费汇聚交换机相应配置收费汇聚track配置 项目背景 在实施省内一条高速公路时遇到的需求,本次涉及的主要是收费汇聚交换机的配置,浪潮网络设备在高速项目很少,通…...
在Mathematica中实现Newton-Raphson迭代的收敛时间算法(一般三次多项式)
考察一般的三次多项式,以r为参数: p[z_, r_] : z^3 (r - 1) z - r; roots[r_] : z /. Solve[p[z, r] 0, z]; 此多项式的根为: 尽管看起来这个多项式是特殊的,其实一般的三次多项式都是可以通过线性变换化为这个形式…...
Webpack性能优化:构建速度与体积优化策略
一、构建速度优化 1、升级Webpack和Node.js 优化效果:Webpack 4比Webpack 3构建时间降低60%-98%。原因: V8引擎优化(for of替代forEach、Map/Set替代Object)。默认使用更快的md4哈希算法。AST直接从Loa…...
MySQL 8.0 事务全面讲解
以下是一个结合两次回答的 MySQL 8.0 事务全面讲解,涵盖了事务的核心概念、操作示例、失败回滚、隔离级别、事务性 DDL 和 XA 事务等内容,并修正了查看隔离级别的命令。 MySQL 8.0 事务全面讲解 一、事务的核心概念(ACID) 事务是…...
Python+ZeroMQ实战:智能车辆状态监控与模拟模式自动切换
目录 关键点 技术实现1 技术实现2 摘要: 本文将介绍如何利用Python和ZeroMQ消息队列构建一个智能车辆状态监控系统。系统能够根据时间策略自动切换驾驶模式(自动驾驶、人工驾驶、远程驾驶、主动安全),并通过实时消息推送更新车…...
