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

平台使用篇 | 批处理(bat)脚本使用教程(四)

导读

一个开启多机软件在环仿真的批处理文件 (对应卓面RflyTools文件夹中SITLRun快捷方式),双击它,输入想要生成的飞机数量,即可生成多机软件在环仿真,等待RflySim3D显示3DFixed 4/4,然后可通过QGC控制飞机起飞。运行完毕后,在CMD命令窗口中按下任意键,即可自动关闭所有程序。注: 该批处理文件本质上是通过脚本方式配置CopterSim软件选项,可以用编辑器打开该文件,查看并根据需求修改其中的启动参数。

平台使用篇 | 批处理(bat)脚本使用教程(四)

仿真过程演示

01打开SITLRun.bat一键运行脚本

用“以管理员身份运行”打开,可以提高RflySim平台的软件在系统中的优先级,这样能够解决大部分如飞机抖动,无法起飞等问题。

02运行脚本

在终端输入飞机数量,会自动启用平台仿真软件,其中RflySim3D、QGC各自打开一个窗口,每个CopterSim窗口对应一架飞机,窗口数等于输入飞机数量。此时所有参数已设置完成,可以直接在QGC中对飞机进行起飞降落等操作,仿真完成后在终端按任意键,可以关闭所有软件结束仿真。

运行效果如图。

源码详解

此脚本是一个软件在环飞行仿真的 BAT 脚本,分为CopterSim参数设置和主程序两部分。参数设置包括设置 RflySim 工具路径、开始机器编号、飞行器数量、UDP 端口号、使用 DLL 模型名称或数字索引、仿真模式、PX4 SITL 仿真载具模型、UE4 地图名称、起始位置和间隔、UDP 数据传输模式、广播 IP 地址等选项。主程序包含打开 QGroundControl 和 RflySim3D 等应用程序、编译 PX4 SITL、启动 CopterSim.exe 仿真多个无人机、关闭所有应用程序等功能。用户可以在脚本中根据需要修改各项参数来进行多台无人机的飞行仿真。

 

 

01

参数设置

REM The text start with 'REM' is annotation, the following options are corresponding to Options on CopterSim

REM Set the path of the RflySim tools

SET PSP_PATH=C:\PX4PSP

SET PSP_PATH_LINUX=/mnt/c/PX4PSP

C:

...省略中间部分代码

REM Set broadcast to other computer; IS_BROADCAST=0: only this computer, IS_BROADCAST=1: broadcast;

REM or use IP address to increase speed, e.g., IS_BROADCAST=192.168.3.1

REM Note: in IP mode, IS_BROADCAST=0 equals to IS_BROADCAST=127.0.0.1, IS_BROADCAST=1 equals to IS_BROADCAST=255.255.255.255

REM You can also use a IP list with seperator "," or ";" to specify IPs to send, e.g., 127.0.0.1,192.168.1.4,192.168.1.5

SET IS_BROADCAST=0

REM Set UDP data mode; 0: UDP_FULL, 1:UDP_Simple, 2: Mavlink_Full, 3: Mavlink_simple. input number or string

REM e.g., UDPSIMMODE=1 equals to UDPSIMMODE=UDP_Simple

SET UDPSIMMODE=0

CopterSim界面中的参数设置(可参见上一讲)均包含在SITL/HITL一键脚本内

· 设置RflySim工具的路径

SET PSP_PATH=C:\PX4PSP SET PSP_PATH_LINUX=/mnt/c/PX4PSP C:

所有的批处理文件里的路径设置,都默认在 C 盘会生成一个 PX4PSP 的一个文件夹里面安装路径设为C盘 

· 设置飞机起始的ID

SET /a START_INDEX=1

这里起始ID为1

· 设置飞机起始的ID

SET /a START_INDEX=1

这里起始ID为1

· 设置飞机起始UDP端口

SET /a UDP_START_PORT=20100

一个飞机占两个端口

· DLL文件模型调用

set DLLModel=0 

是否使用DLL模型名称(赋值0则CopterSim中无名称,默认调用多旋翼模型)。可以使用数字索引或名称字符串调用其他类型的载具,而不仅仅是多旋翼。

SET /A DLLModelVal=DLLModel

if %DLLModelVal% NEQ %DLLModel% (

    REM Copy the latest dll file to CopterSim folder

    copy /Y "%~dp0"\%DLLModel%.dll %PSP_PATH%\CopterSim\external\model\%DLLModel%.dll) 

检查“DLLModel”参数是否为名称字符串,如果是,将相应的DLL文件复制到CopterSim文件夹中。运行效果如图。

02

主程序

:Top

ECHO.

ECHO ---------------------------------------

REM Max vehicle number 50

...省略中间部分代码

REM kill all applications when press a key

tasklist|find /i "CopterSim.exe" && taskkill /im "CopterSim.exe"

tasklist|find /i "QGroundControl.exe" && taskkill /f /im "QGroundControl.exe"

tasklist|find /i "RflySim3D.exe" && taskkill /f /im "RflySim3D.exe"

ECHO Start End.

主程序部分是提前编辑完成的,不建议直接修改,如有需要,可改变之前的参数设置。

· 设置仿真数量

REM Max vehicle number 50

SET /a MAX_VEHICLE=50

SET /P VehicleNum=Please input UAV swarm number:

SET /A Evaluated=VehicleNum

if %Evaluated% EQU %VehicleNum% (

    IF %VehicleNum% GTR 0 (

        IF %VehicleNum% GTR %MAX_VEHICLE% (

            ECHO The vehicle number is too large, which may cause a crash

            pause

        )

        GOTO StartSim

    )

    ECHO Not a positive integer

    GOTO Top

) ELSE (

    ECHO Not a integer

    GOTO Top

)

首先限制最大仿真数量(这里默认限制为50台,可根据电脑硬件配置调整,也可修改UDP通信模式以支持更大数量的仿真);/P后输入集群的载具数量(根据这个数量会在之后启动对应的软件);然后根据最大仿真数量和输入的载具数量作出判断,判断通过则进行下一步,否则返回重新输入。

· 开始仿真

:StartSim

SET /A VehicleTotalNum=%VehicleNum% + %START_INDEX% - 1

if not defined TOTOAL_COPTER (

    SET /A TOTOAL_COPTER=%VehicleTotalNum%

)

set /a sqrtNum=1

set /a squareNum=1

:loopSqrt

set /a squareNum=%sqrtNum% * %sqrtNum%

if %squareNum% EQU %TOTOAL_COPTER% (

    goto loopSqrtEnd

)

if %squareNum% GTR %TOTOAL_COPTER% (

    goto loopSqrtEnd

)

set /a sqrtNum=%sqrtNum%+1

goto loopSqrt

:loopSqrtEnd

先计算集群的载具总数(为了更好的分配每个载具的ID);然后根据输入的载具数量,利用递归算法每生成一个载具就分配一个编号,并将结果存储在sqrtNum 变量中(便于之后定义每个载具的ID)。

REM QGCPath

tasklist|find /i "QGroundControl.exe" || start %PSP_PATH%\QGroundControl\QGroundControl.exe

ECHO Start QGroundControl

REM UE4Path

cd %PSP_PATH%\RflySim3D

tasklist|find /i "RflySim3D.exe" || start %PSP_PATH%\RflySim3D\RflySim3D.exe

choice /t 5 /d y /n >nul

tasklist|find /i "CopterSim.exe" && taskkill /im "CopterSim.exe"

ECHO Kill all CopterSims

REM CptSmPath

cd %PSP_PATH%\CopterSim

启动/关闭一些软件应用程序,并且进行路径的设置。先分别设置路径,找到并启动QGC和RflySim3D应用程序,然后关闭正在运行的CopterSim(因为之后要对CopterSim进行参数配置),再设置CopterSim应用程序的路径

set /a cntr=%START_INDEX%

set /a endNum=%VehicleTotalNum%+1

set /a portNum=%UDP_START_PORT%+((%START_INDEX%-1)*2)

:loopBegin

set /a PosXX=((%cntr%-1) / %sqrtNum%)*%VEHICLE_INTERVAL% + %ORIGIN_POS_X%

set /a PosYY=((%cntr%-1) %% %sqrtNum%)*%VEHICLE_INTERVAL% + %ORIGIN_POS_Y%

start /realtime CopterSim.exe 1 %cntr% %portNum% %DLLModel% %SimMode% %UE4_MAP% %IS_BROADCAST% %PosXX% %PosYY% %ORIGIN_YAW% 1 %UDPSIMMODE%

choice /t 1 /d y /n >nul

set /a cntr=%cntr%+1

set /a portNum=%portNum%+2

if %cntr% EQU %endNum% goto loopEnd

goto loopBegin

:loopEnd

打开CopterSim模拟器并设置一些参数。先根据之前的初始ID、集群总数及UDP发送端口设置变量(计数器、循环终止条件),随后进入循环,计算每个载具所在的初始位置坐标(PosXX和PosYY),并使用start命令打开CopterSim程序,传递相应的参数(DLL文件、三维场景等)。choice命令会等待1秒钟,然后返回结果(确保启动前参数及时设置)。之后进行载具ID、端口的递归,满足终止条件后结束循环。

REM Set ToolChainType 1:Win10WSL 3:Cygwin

SET /a ToolChainType=1

if "%IS_BROADCAST%" == "0" (

    SET IS_BROADCAST=0

) else (

    SET IS_BROADCAST=1

)

SET WINDOWSPATH=%PATH%

if %ToolChainType% EQU 1 (

    wsl echo Starting PX4 Build; cd %PSP_PATH_LINUX%/Firmware; ./BkFile/EnvOri.sh; export PATH=$HOME/ninja:$HOME/gcc-arm-none-eabi-7-2017-q4-major/bin:$PATH;make px4_sitl_default; ./Tools/sitl_multiple_run_rfly.sh %VehicleNum% %START_INDEX% %PX4SitlFrame%;echo Press any key to exit; read -n 1

) else (

    REM CYGPath

    cd %PSP_PATH%\CygwinToolchain

    CALL setPX4Env.bat

    bash -l -i -c 'echo Starting SITL SIMULATION; cd %PSP_PATH_LINUX%/Firmware; ./BkFile/EnvOri.sh; pwd; make px4_sitl_default; ./Tools/sitl_multiple_run_rfly.sh %VehicleNum% %START_INDEX% %PX4SitlFrame%;echo Press any key to exit; read -n 1; pkill -x px4 || true;'

)

SET PATH=%WINDOWSPATH%

构建PX4飞控的固件并启动模拟器。先选择编译环境(默认为平台安装时选择的编译环境),随后进行广播的辨别(如果IS_BROADCAST未定义,则将其设为0),然后根据不同的编译环境设置路径并进行编译(包括传入载具数量,ID,记录飞行状态等)。

· 结束仿真

REM kill all applications when press a key

tasklist|find /i "CopterSim.exe" && taskkill /im "CopterSim.exe"

tasklist|find /i "QGroundControl.exe" && taskkill /f /im "QGroundControl.exe"

tasklist|find /i "RflySim3D.exe" && taskkill /f /im "RflySim3D.exe"

ECHO Start End. 

首先使用任务列表命令(tasklist)查找是否有名为“CopterSim.exe”、“QGroundControl.exe”和“RflySim3D.exe”的进程正在运行。如果找到了这些进程,则使用任务终止命令(taskkill)终止它们。最后在终端输出“Start End.”的文本。

硬件在环一件运行脚本

开启多机硬件在环仿真的批处理文件,插入多个Pixhawk等飞控,再双击该批处理文件,根据提示输入想要参与仿真的Pixhawk串口号 (不同串口间逗号分隔),即可开启多机的硬件在环仿真 (以输入串口顺序进行飞机ID排序)

01

与SITLRun脚本的区别

HITLRun.bat一键脚本中的大部分与SITLRun.bat脚本相同,仅在端口设置(CopterSim中的对应参数设置也会改变)、软件启动顺序(QGC最后启动)和固件编译(硬件在环脚本中没有编译过程)上有所区别:

· 端口设置

ECHO.

ECHO ---------------------------------------

REM Get the Com port number

for /f "delims=" %%t in ('%PSP_PATH%\CopterSim\GetComList.exe 2') do set ComNumExe=%%t

REM Get the Com port list

for /f "delims=" %%t in ('%PSP_PATH%\CopterSim\GetComList.exe 0') do set ComNameList=%%t

REM Get the Com port info

for /f "delims=" %%t in ('%PSP_PATH%\CopterSim\GetComList.exe 1') do set ComInfoList=%%t

echo Please input the Pixhawk COM port list for HIL

echo Use ',' as the separator if more than one Pixhawk

echo E.g., input 3 for COM3 of Pixhawk on the computer

echo Input 3,6,7 for COM3, COM6 and COM7 of Pixhawks

echo.

set remain=%ComInfoList% 

获取计算机上可用的串口列表和信息,并提示用户输入Pixhawk COM端口列表以便进行硬件在环仿真。

· 使用 GetComList.exe 获取当前计算机上可用的串口数量,保存在变量 ComNumExe 中。

· 再次使用 GetComList.exe 获取当前计算机上所有可用的串口名称列表,保存在变量 ComNameList 中。

· 第三次使用 GetComList.exe 获取当前计算机上所有可用串口的详细信息列表,保存在变量 ComInfoList 中。

·通过 echo 命令提示用户输入 Pixhawk 的 COM 端口列表,告知用户如果有多个 Pixhawk 设备,则需要使用逗号作为分隔符。效果如图。

在用户输入了 COM 端口列表后,脚本会使用 for 循环语句遍历 ComInfoList 变量中的每一个串口信息,输出该串口的详细信息,包括串口名称、波特率、数据位、校验位等。

if %ComNumExe% EQU 0 (

    echo Warning: there is no available COM port

) else (

    echo Available COM ports on this computer are:

    :loopInfo

    for /f "tokens=1* delims=;" %%a in ("%remain%") do (

        echo %%a

        set remain=%%b

    )

    if defined remain goto :loopInfo

    echo.

    echo Recommended COM list input is: %ComNameList%

)

如果当前计算机没有可用的 COM 端口,则输出提示信息;否则输出所有可用的 COM 端口,并且推荐使用的 COM 列表输入名称为 %ComNameList%的变量(此判断目的在于区分电脑连接的其余硬件和飞控)。

其中,"%" 符号表示环境变量,在脚本运行时会根据实际情况替换成对应的值。具体来说,"%ComNumExe%" 表示可用的 COM 端口数量,"%remain%" 是一个变量,用于存储剩余的 COM 端口列表。脚本通过 for 循环和 set 命令依次取出每个 COM 端口名称并输出,直到 remain 变量为空。

02

QGC启动

 会在CopterSim参数设置完成之后再打开QGC, 因为如果QGC 先打开,可能会占用硬件的端口号导致CopterSim 不能开始仿真。

相关文章:

平台使用篇 | 批处理(bat)脚本使用教程(四)

导读 一个开启多机软件在环仿真的批处理文件 (对应卓面RflyTools文件夹中SITLRun快捷方式),双击它,输入想要生成的飞机数量,即可生成多机软件在环仿真,等待RflySim3D显示3DFixed 4/4,然后可通过QGC控制飞机起飞。运行…...

接口的讲解

在这里之前我想童鞋们都学习过了springmvc。mybatis-plus。Springboot等一些框架 那么下面我们就整合这些框架 我们通过写crud这些接口 写接口的第一步就是引入pom文件 在pom文件里引入一下几种依赖 引入父级工程 thymeleaf导入模版工具类 SpringMVCjar包文件 热部署工具 l…...

G0第21章 :gin框架介绍、RESTful API、Gin渲染

G0第21章 :gin框架 01 内容介绍 https://gin-gonic.com/zh-cn/docs/ web本质 Web是基于HTTP协议进行交互的应用网络Web就是通过使用浏览器/APP访问的各种资源 package mainimport ("fmt""net/http" )func sayHello(w http.ResponseWriter, r…...

python list,dict操作

一、list 操作 Python中的列表是一种有序、可变的数据类型,可以存储任意类型的数据。以下是Python中常用的列表操作: 创建列表:使用[]或list()函数创建一个空列表,或者使用[value1, value2, ...]创建一个包含初始值的列表。 访问…...

我有一个页面a,在页面a中调用了一个组件,然后组件中要切换页面a的一块区域,该怎么实现?

你可以在组件中使用路由的编程式导航,通过访问路由实例来切换页面a的对应区域。具体来说,你可以先在页面a中设置一个具有唯一标识的占位符元素,然后在组件中通过路由实例访问这个元素并修改其内容或样式来实现区域切换。路由的编程式导航可以…...

ChatGPT唤醒AI游戏:AIGC持续走深,游戏或成AI最佳抓手

随着人工智能技术的不断发展,AI在游戏行业的应用日益深入。本文将详细探讨ChatGPT在AI游戏领域的应用,以及游戏如何成为AI技术的最佳抓手。让我们一起探讨这个有趣且充满潜力的领域。 一、引言 人工智能在各行各业都取得了巨大的成功,而游戏…...

远程服务和web服务和前端,三方通过socket和websocket进行双向通信传输数据

1. 什么是socket? 在计算机通信领域,socket 被翻译为“套接字”,它是计算机之间进行通信的一种约定或一种方式。通过 socket 这种约定,一台计算机可以接收其他计算机的数据,也可以向其他计算机发送数据。 2. 什么是websocket?…...

Linux 网络基础(2)应用层(http/https协议、请求格式、响应格式、session、cookie、加密传输)

说明:网络基础2讲解的是应用层的典型协议, 通过对于典型协议的理解,来体会数据的网络传输的软件层面的流程与原理。 面试中网络通信相关问题占了很大的比重,而网络通信相关的问题大多都集中在网络基础2这个单元中 下面是应用层的位…...

解决sshfs挂载报错

使用ssh命令和sshfs命令报错 read: Connection reset by peer rootjiangcheng01:~/common/remote# sshfs -o allow_other htrdxxx.xxx.xxx.xxx:/home/htrd /root/common/remote/dev01 read: Connection reset by peer 报错问题排查,追加命令 -o debug -o sshf s_d…...

由于过多的连接错误而被 MySQL服务器 阻止

Caused by: com.mysql.cj.exceptions.CJException: null, message from server: "Host 10.105.***.** is blocked because of many connection errors; unblock with mysqladmin flush-hosts" 这个错误可能表示当您尝试使用 IP 地址为 "10.105.***.**" 的…...

Go语言实现JDBC

Go语言操作数据库 Go语言提供了关于数据库的操作,包下有sql/driver 该包用来定义操作数据库的接口,这保证了无论使用哪种数据库,操作方式都是相同的; 准备工作: 下载驱动 需要在代码所在文件夹下执行相应的命令 go get github.com/go-sql-driver/mys…...

ubuntu修改环境变量的几种方法

ubuntu修改环境变量的几种方法 有多种方法可以修改Ubuntu系统的环境变量,包括: 临时修改环境变量:在终端中使用export命令可以临时修改环境变量。例如,要将PATH环境变量添加到新目录,可以运行以下命令: …...

基于html+css的图展示95

准备项目 项目开发工具 Visual Studio Code 1.44.2 版本: 1.44.2 提交: ff915844119ce9485abfe8aa9076ec76b5300ddd 日期: 2020-04-16T16:36:23.138Z Electron: 7.1.11 Chrome: 78.0.3904.130 Node.js: 12.8.1 V8: 7.8.279.23-electron.0 OS: Windows_NT x64 10.0.19044 项目…...

数据库基础——5.运算符

这篇文章我们来讲一下SQL语句中的运算符操作。 说点题外话:SQL本质上也是一种计算机语言,和C,java一样的,只不过SQL是用来操作数据库的。在C,java中也有运算符,这两种语言中的运算符和数学中的运算符差距不…...

JMeter 性能测试基本过程及示例

jmeter 为性能测试提供了一下特色: 2023年最新出炉性能测试教程,真实企业性能压测全流程项目实战训练大合集!_哔哩哔哩_bilibili2023年最新出炉性能测试教程,真实企业性能压测全流程项目实战训练大合集!共计11条视频&…...

漏洞复现 CVE-2018-2894 weblogic文件上传

vulhub weblogic CVE-2018-2894 1、 搭建好靶场,按提示访问 http://192.168.137.157:7001/console 按照给出的文档,会查看容器的日志,找到管理员用户名/密码为 weblogic / h3VCmK2L,暂时用不到,不需要登录 2、未授权…...

二叉树:填充每个节点的下一个右侧节点指针(java)

leetcode116:填充每个节点的下一个右侧节点指针 leetcode原题链接:题目描述递归解法一递归方法二(效率更高)二叉树专题 leetcode原题链接: 116题:填充每个节点的下一个右侧节点指针 题目描述 给定一个 完美二叉树 &a…...

Android 12.0修改系统默认设备类型的平板电脑类型为设备类型

1.概述 在12.0的系统rom产品开发中,对于产品设备类型都默认为tablet即平板电脑类型,即 product="tablet" 在一些不是平板的项目中,可能需要修改这个类型为device类型 即 product="device",这就需要找到相关设置系统属性的代码,修改系统属性就可以了 2…...

debug研究

debug研究 debug的condition 通常用在for循环里面 for循环中实际使用 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UsmJ93w5-1685344057464)(D:\typora_pic_all\image-20230529145417753.png)] log.info("当前共有{}条数据待处理", vos…...

zabbix监控系统

一、Zabbix概述 1、使用zabbix的原因 作为一个运维,需要会使用监控系统查看服务器状态以及网站流量指标,利用监控系统的数据去了解上线发布的结果,和网站的健康状态。 利用一个优秀的监控软件,我们可以: ●通过一个友好的界面进…...

Python入门学习

一、执行Python(Hello World)程序 对于大多数程序语言,第一个入门编程代码便是 “Hello World!”,以下代码为使用 Python 输出 “Hello World!” 1.1 创建hello.py文件 1.2 编写程序 #!/usr/bin/python…...

自动驾驶嵌入式开发工程师:车载SOC开发修炼秘籍

声明:本文档是博主在开发学习过程中写的笔记,本意是便于以后开发复盘,参考《 ug1144-petalinux-tools-reference-guide》、《ug1085》、黑金Zynq UltraScale MPSoC 5EV开发板资料、英伟达官方资料。大佬勿喷 大佬勿喷 大佬勿喷!&a…...

Linux之搭建环境

文章目录 1 FileZilla软件2 Linux搭建samba文件共享服务器,实现基于Linux和Windows的共享文件服务2.1 smaba的安装与基本应用2.2 samba的账号权限配置2.3 win系统下的文件无法复制到Linux共享文件夹中 1 FileZilla软件 在跟着正点原子教程安装后,出现如下…...

泡利矩阵(一)

〇、厄米矩阵 厄米矩阵(Hermitian Matrix),也称为自共轭矩阵(Self-adjoint Matrix),是线性代数中的一个重要概念。它是指一个复数域上的方阵,其转置矩阵与共轭矩阵相等。 具体来说&#xff0c…...

通用支付系统设计

支付永远是一个公司的核心领域,因为这是一个有交易属性公司的命脉。那么,支付系统到底长什么样,又是怎么运行交互的呢?抛开带有支付牌照的金融公司的支付架构,下述链路和系统组成基本上符合绝大多数支付场景。其实整体可以看成是…...

metaRTC+ZLMediaKit实现webrtc的推拉流

概述 ZLMediaKit是一个基于C11的高性能运营级流媒体服务框架,是一个支持webrtc SFU的优秀的流媒体服务器系统。 metaRTC新版本支持whip/whep协议,支持whip/whep协议的ZLMediaKit推拉流。 信令通信 ZLMediaKit新版本支持whip和whep协议,支…...

【JavaSE】Java基础语法(八)

文章目录 🍓1. 类和对象🍹🍹1.1 类和对象的关系🍹🍹1.2 类的定义 🍓2. 对象内存图🍹🍹2.1 单个对象内存图🍹🍹2.2 多个对象内存图2.3 多个对象指向相同内存图…...

Java如何配置环境变量

Java如何配置环境变量 0. 前言1. 下载Java2. 配置环境变量2.1新建 Java_Home2.2 编辑Path情况1情况2 3. 验证安装 0. 前言 本节记录如何配置Java环境变量,用自己重装过的系统实操 操作系统:Windows10 专业版 Java版本:jdk1.7.0_07 1. 下载…...

android 12.0SystemUI 状态栏下拉快捷添加截图快捷开关

1.概述 在12.0的系统产品rom定制化开发中,对SystemUI的定制需求也是挺多的,在下拉状态栏中 添加截图快捷开关,也是常有的开发功能,下面就以添加 截图功能为例功能的实现 2.SystemUI 状态栏下拉快捷添加截图快捷开关的核心代码 frameworks/base/packages/SystemUI/res/va…...

【无标题】 Vue 路由库Router 【重点】 - 安装 - 基本使用 - 路由配置 - 路由模式 - 路由传递参数 - 路由内置对象 - 路由守卫

0.0 课程介绍 Vue 路由库Router 【重点】 安装基本使用路由配置路由模式路由传递参数路由内置对象路由守卫 Vue的内置API 【掌握】 ref Vue.set Vue.nextTick Vue.filter Vue.component Vue.use Vue.directive 1.0 Vue的路由Router 【重点】 1.1 路由作用 进行页面…...