20231114在HP笔记本的ubuntu20.04系统下向RealmeQ手机发送PDF文件
20231114在HP笔记本的ubuntu20.04系统下向RealmeQ手机发送PDF文件
2023/11/14 14:11
手机:Realme Q
笔记本电脑:HP
https://item.jd.com/100012583174.html
惠普(HP)战66 三代AMD版 14英寸轻薄笔记本电脑(锐龙7nm 六核 R5-4500U 8G 256G 一年上门+意外 2年电池)
百度:ubuntu BT蓝牙扫描 传输
https://download.csdn.net/blog/column/10505902/125683989
Ubuntu蓝牙Bluetooth命令行连接发送文件完整流程
1.确保bluez已安装好
$sudo apt install bluez
2.查看当前蓝牙阻塞状态
$sudo rfkill list
如果上面阻塞状态为yes,表示蓝牙关闭,则需要unblock打开蓝牙:
$sudo rfkill unblock bluetooth
3.执行bluetoothctl
$bluetoothctl
4.扫描其他蓝牙设备
$scan on
5.配对指定的蓝牙设备
$pair AA:AA:xxxxxx
$trust dev_address
pair 58:85:e9:2e:52:2a
trust 58:85:e9:2e:52:2a
connect 58:85:e9:2e:52:2a
6.如果没有安装bluez-tools则需要安装
$sudo apt install bluez-tools
使用bt-obex发送文件:
$bt-obex -p [remote_mac] [file]
譬如:
$bt-obex -p F0:6B:CA:A2:C4:69 ~/xxx.pdf
bt-obex -p 58:85:e9:2e:52:2a ~/readme.pdf
命令行监听接收则可以先执行命令:
$bt-obex -s [path]
譬如:
$bt-obex -s ~/Downloads
RealmeQ手机相关截图:
参考资料:
百度:bluetoothctl connect pair
https://blog.csdn.net/qq_28877125/article/details/134130625
【RP-RV1126】配置一套简单的板级配置
https://www.python100.com/html/82170.html
Bluetoothctl全解析
rootroot@rootroot-HP-ZHAN-66-Pro-A-14-G3:~$
rootroot@rootroot-HP-ZHAN-66-Pro-A-14-G3:~$
rootroot@rootroot-HP-ZHAN-66-Pro-A-14-G3:~$ uname -r
5.15.0-88-generic
rootroot@rootroot-HP-ZHAN-66-Pro-A-14-G3:~$
rootroot@rootroot-HP-ZHAN-66-Pro-A-14-G3:~$
rootroot@rootroot-HP-ZHAN-66-Pro-A-14-G3:~$ sudo apt install bluez
[sudo] password for rootroot:
Reading package lists... Done
Building dependency tree
Reading state information... Done
bluez is already the newest version (5.53-0ubuntu3.6).
bluez set to manually installed.
0 upgraded, 0 newly installed, 0 to remove and 102 not upgraded.
rootroot@rootroot-HP-ZHAN-66-Pro-A-14-G3:~$
rootroot@rootroot-HP-ZHAN-66-Pro-A-14-G3:~$
rootroot@rootroot-HP-ZHAN-66-Pro-A-14-G3:~$ sudo rfkill list
0: hci0: Bluetooth
Soft blocked: no
Hard blocked: no
1: phy0: Wireless LAN
Soft blocked: no
Hard blocked: no
rootroot@rootroot-HP-ZHAN-66-Pro-A-14-G3:~$
rootroot@rootroot-HP-ZHAN-66-Pro-A-14-G3:~$ bluetoothctl
Agent registered
[CHG] Device 48:B8:A6:3A:04:6D RSSI: -73
[CHG] Device 43:4C:5D:C5:0B:1F RSSI: -82
[CHG] Device 4C:E1:73:B8:8C:0F RSSI: -97
[CHG] Device 49:3C:99:18:0A:1B RSSI: -83
[CHG] Device 53:98:AF:96:B5:34 RSSI: -92
[CHG] Device 45:C9:70:CD:02:20 RSSI: -85
[CHG] Device 59:B2:26:FF:62:53 RSSI: -57
[CHG] Device 65:8F:BE:BC:26:29 RSSI: -89
[CHG] Device 98:DA:B0:07:6D:32 RSSI: -77
[NEW] Device 4E:EE:7C:E2:63:5D 4E-EE-7C-E2-63-5D
[CHG] Device 45:C9:70:CD:02:20 RSSI: -85
[CHG] Device 7A:1B:5D:D7:A2:FB RSSI: -87
[CHG] Device 52:BC:9A:84:72:0E RSSI: -93
[CHG] Device 53:98:AF:96:B5:34 RSSI: -90
[CHG] Device 49:3C:99:18:0A:1B RSSI: -88
[CHG] Device 54:28:76:FE:F0:88 RSSI: -86
[NEW] Device 6D:BB:E1:6C:93:CB 6D-BB-E1-6C-93-CB
[CHG] Device DC:F0:90:3F:BC:78 RSSI: -71
[CHG] Device 52:89:F4:C9:74:A7 RSSI: -74
[CHG] Device 52:89:F4:C9:74:A7 ManufacturerData Key: 0x004c
[CHG] Device 52:89:F4:C9:74:A7 ManufacturerData Value:
01 00 00 00 00 00 40 00 00 00 00 00 00 00 00 00 ......@.........
00 .
[CHG] Device 7A:1B:5D:D7:A2:FB RSSI: -97
[CHG] Device 90:E4:68:E2:FE:43 RSSI: -59
[CHG] Device 61:22:DF:10:F5:72 RSSI: -82
[CHG] Device 65:8F:BE:BC:26:29 RSSI: -89
[CHG] Device 24:8D:0C:DE:34:AB RSSI: -99
[CHG] Device 47:18:94:BC:80:8F RSSI: -93
[CHG] Device 4C:E1:73:B8:8C:0F RSSI: -96
[CHG] Device 5F:C0:39:33:B1:99 RSSI: -93
[CHG] Device 98:DA:B0:07:6D:32 RSSI: -72
[CHG] Device 36:7E:54:84:FD:F5 RSSI: -63
[CHG] Device 52:BC:9A:84:72:0E RSSI: -91
[CHG] Device 36:7E:54:84:FD:F5 RSSI: -61
[CHG] Device 43:72:FC:CA:8F:37 RSSI: -93
[CHG] Device 52:BC:9A:84:72:0E RSSI: -89
[CHG] Device 52:89:F4:C9:74:A7 RSSI: -79
[CHG] Device 52:89:F4:C9:74:A7 ManufacturerData Key: 0x004c
[CHG] Device 52:89:F4:C9:74:A7 ManufacturerData Value:
01 00 00 00 00 00 40 00 00 00 00 00 00 00 00 00 ......@.........
00 .
[CHG] Device 56:E8:2E:9D:A3:52 RSSI: -62
[CHG] Device 04:7F:0E:4B:F7:F4 RSSI: -83
[CHG] Device 49:3C:99:18:0A:1B RSSI: -89
[bluetooth]# pair 58:85:e9:2e:52:2a
Attempting to pair with 58:85:E9:2E:52:2A
Failed to pair: org.bluez.Error.AlreadyExists
[CHG] Device 6A:9C:5C:AC:BE:C6 RSSI: -71
[CHG] Device 78:4F:5F:A4:D0:7D RSSI: -84
[CHG] Device C8:76:25:6F:1E:36 RSSI: -75
[CHG] Device 34:5B:B4:1C:4A:48 RSSI: -95
[CHG] Device 1D:8F:FD:E3:96:99 RSSI: -64
[bluetooth]# trust 58:85:e9:2e:52:2a
Changing 58:85:E9:2E:52:2A trust succeeded
[CHG] Device 4A:92:48:B6:27:1F RSSI: -61
[CHG] Device 98:DA:B0:07:6D:32 RSSI: -70
[CHG] Device 9C:77:01:D3:8F:F2 RSSI: -80
[CHG] Device 9C:97:89:80:29:C1 RSSI: -90
[NEW] Device 42:61:52:B5:27:10 42-61-52-B5-27-10
[CHG] Device 50:58:94:C2:95:42 RSSI: -97
[CHG] Device 5B:80:5F:E4:B5:01 RSSI: -63
[CHG] Device 41:12:BF:5A:CF:50 RSSI: -90
[CHG] Device 11:4F:6E:39:E3:BE RSSI: -66
[bluetooth]# connect 58:85:e9:2e:52:2a
Attempting to connect to 58:85:e9:2e:52:2a
[CHG] Device 23:46:31:3B:23:62 RSSI: -89
[CHG] Device 66:66:11:EE:D5:FB RSSI: -88
[CHG] Device 9C:97:89:80:29:C1 RSSI: -90
[CHG] Device 1D:8F:FD:E3:96:99 RSSI: -67
[CHG] Device 5A:52:DD:82:B0:3B RSSI: -79
[CHG] Device 41:12:BF:5A:CF:50 RSSI: -86
[CHG] Device 71:A2:CF:F1:C4:35 RSSI: -87
[CHG] Device 90:E4:68:E2:FE:43 RSSI: -57
[CHG] Device 9C:97:89:80:29:C1 RSSI: -93
[CHG] Device 41:12:BF:5A:CF:50 RSSI: -85
[CHG] Device 3D:B5:F6:A6:A1:44 RSSI: -76
[CHG] Device 3D:B5:F6:A6:A1:44 ManufacturerData Key: 0x004c
[CHG] Device 3D:B5:F6:A6:A1:44 ManufacturerData Value:
13 07 02 07 77 fa 26 70 6b ....w.&pk
[CHG] Device 90:E4:68:E2:FE:43 RSSI: -56
[CHG] Device 4A:92:48:B6:27:1F RSSI: -76
[CHG] Device 9C:97:89:80:29:C1 RSSI: -94
[CHG] Device 7F:F4:25:34:0C:F8 RSSI: -75
[CHG] Device 11:4F:6E:39:E3:BE RSSI: -71
[CHG] Device 67:46:4A:79:15:04 RSSI: -93
[CHG] Device 90:E4:68:E2:FE:43 RSSI: -56
[NEW] Device 71:B0:FA:94:A7:2A 71-B0-FA-94-A7-2A
[CHG] Device 48:8B:F9:30:5F:64 RSSI: -91
[CHG] Device 5B:80:5F:E4:B5:01 RSSI: -74
[CHG] Device 4A:92:48:B6:27:1F RSSI: -76
[CHG] Device 52:23:C7:0A:67:1E RSSI: -53
[CHG] Device 5A:52:DD:82:B0:3B RSSI: -76
[CHG] Device 67:46:4A:79:15:04 RSSI: -80
[CHG] Device 11:4F:6E:39:E3:BE RSSI: -66
[CHG] Device 3D:B5:F6:A6:A1:44 RSSI: -77
[CHG] Device 52:5D:B9:9D:B6:33 RSSI: -80
[CHG] Device 5E:2C:7B:1A:25:51 RSSI: -94
[CHG] Device 5B:80:5F:E4:B5:01 RSSI: -71
[CHG] Device 41:12:BF:5A:CF:50 RSSI: -82
[CHG] Device 64:1D:CD:1E:A4:12 RSSI: -67
[CHG] Device 24:01:0E:9B:AC:56 RSSI: -68
[CHG] Device 6A:15:10:B9:3D:87 RSSI: -72
[CHG] Device 4B:F3:ED:9B:02:46 RSSI: -78
[CHG] Device 6A:15:10:B9:3D:87 RSSI: -73
[CHG] Device 36:D5:15:8A:8C:57 RSSI: -95
[CHG] Device 90:E4:68:E2:FE:43 RSSI: -55
[CHG] Device 66:66:11:EE:D5:FB RSSI: -89
[CHG] Device 3D:B5:F6:A6:A1:44 RSSI: -72
[CHG] Device 23:46:31:3B:23:62 RSSI: -86
[CHG] Device 11:4F:6E:39:E3:BE RSSI: -66
[CHG] Device 24:01:0E:9B:AC:56 RSSI: -68
[CHG] Device 5B:2B:52:0A:A7:EA RSSI: -89
[CHG] Device 1D:8F:FD:E3:96:99 RSSI: -57
[CHG] Device 58:85:E9:2E:52:2A Connected: yes
[CHG] Device 7B:3C:96:A7:E7:3D RSSI: -75
[CHG] Device E8:D1:E2:C2:F9:7D RSSI: -96
[CHG] Device 64:1D:CD:1E:A4:12 RSSI: -75
[CHG] Device 23:46:31:3B:23:62 RSSI: -85
[CHG] Device 71:A2:CF:F1:C4:35 RSSI: -88
[CHG] Device 52:5D:B9:9D:B6:33 RSSI: -71
[CHG] Device 1D:8F:FD:E3:96:99 RSSI: -57
rootroot@rootroot-HP-ZHAN-66-Pro-A-14-G3:~$
rootroot@rootroot-HP-ZHAN-66-Pro-A-14-G3:~$ sudo apt install bluez-tools
[sudo] password for rootroot:
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following NEW packages will be installed:
bluez-tools
0 upgraded, 1 newly installed, 0 to remove and 102 not upgraded.
Need to get 153 kB of archives.
After this operation, 1,048 kB of additional disk space will be used.
Get:1 http://mirrors.tuna.tsinghua.edu.cn/ubuntu focal/universe amd64 bluez-tools amd64 2.0~20170911.0.7cb788c-2build1 [153 kB]
Fetched 153 kB in 1s (104 kB/s)
Selecting previously unselected package bluez-tools.
(Reading database ... 213456 files and directories currently installed.)
Preparing to unpack .../bluez-tools_2.0~20170911.0.7cb788c-2build1_amd64.deb ...
Unpacking bluez-tools (2.0~20170911.0.7cb788c-2build1) ...
Setting up bluez-tools (2.0~20170911.0.7cb788c-2build1) ...
Processing triggers for man-db (2.9.1-1) ...
rootroot@rootroot-HP-ZHAN-66-Pro-A-14-G3:~$
rootroot@rootroot-HP-ZHAN-66-Pro-A-14-G3:~$ bt-obex -p 58:85:e9:2e:52:2a ~/readme.pdf
[Transfer#readme.pdf] Waiting...
[Transfer#readme.pdf] Progress: 100%
[Transfer#readme.pdf] Completed
(bt-obex:3062): GLib-CRITICAL **: 14:53:07.194: g_atomic_ref_count_dec: assertion 'g_atomic_int_get (arc) > 0' failed
rootroot@rootroot-HP-ZHAN-66-Pro-A-14-G3:~$
相关文章:

20231114在HP笔记本的ubuntu20.04系统下向RealmeQ手机发送PDF文件
20231114在HP笔记本的ubuntu20.04系统下向RealmeQ手机发送PDF文件 2023/11/14 14:11 手机:Realme Q 笔记本电脑:HP https://item.jd.com/100012583174.html 惠普(HP)战66 三代AMD版 14英寸轻薄笔记本电脑(锐龙7nm 六核…...
【0234】PgBackendStatus 记录当前postgres进程的活动状态
1. 关于PgBackendStatus 每个存活的后端进场在共享内存中维护一个PgBackendStatus结构体,显示其当前活动状态。(结构体是根据BackendId分配的,但这并不重要。) 请注意: 进场状态收集器进程不参与、甚至不访问这些结构。 每个辅助进程还在共享内存中维护一个PgBackendStatu…...
存钱虚拟计划,嘚
存钱计划—虚拟 2024年 (第一年) 1月 2月 3月 4月 5月 6 月 7月 8月 9月 10月 11月 12月 1w 1w 1w 1w 1w 1w 1w 1w 1w 1w 1w 1w 2025年(第二年) 1w1w*102.5% A 懒得写A代替 A A A A A A A A A A 2026年(第三年) (1w1w*10…...

基于IDEA进行Maven工程构建
Java全能学习面试指南:https://javaxiaobear.cn 1. 构建概念和构建过程 项目构建是指将源代码、依赖库和资源文件等转换成可执行或可部署的应用程序的过程,在这个过程中包括编译源代码、链接依赖库、打包和部署等多个步骤。 项目构建是软件开发过程中…...

Openssl X509 v3 AuthorityKeyIdentifier实验与逻辑分析
Openssl是X509的事实标准,目前主流OS或个别安全性要求较高的设计场景,对X509的证书链验证已经不在停留在只从数字签名校验了,也就是仅仅从公钥验签的角度,在这些场景中,往往还会校验AuthorityKeyIdentifier和SubjectKe…...
聊聊logback的MDCFilter
序 本文主要研究一下logback的MDCFilter MatchingFilter ch/qos/logback/classic/turbo/MatchingFilter.java public abstract class MatchingFilter extends TurboFilter {protected FilterReply onMatch FilterReply.NEUTRAL;protected FilterReply onMismatch FilterR…...

Windows10安装麒麟桌面V10双系统
概述 想要在Windows10操作系统中安装麒麟V10的桌面操作系统(Kylin-Desktop-V10-Professional-Release-Build1-210203-X86_64) 安装前准备 1、先搞清楚自己的电脑类型 A MBR传统bios单硬盘 B MBR 传统bios双硬盘(SSD固态硬盘机械硬盘&…...
file_put_contents锁的问题
记一次线上生产file_put_contents锁的问题 php项目,很多地方加了日志记录,方法为 function logstr($namelog,$str"",$type"Ymd"){$file date("$type")._.$name..log;$add __DIR__./../runtime/cuslog/.date("Ym&q…...

工作中积累的对K8s的就绪和存活探针的一些认识
首先,我的项目是基于 Spring Boot 2.3.5 的,并依赖 spring-boot-starter-actuator 提供的 endpoints 来实现就绪和存活探针,POM 文件如下图: 下面,再让我们来看下与该项目对应的Deployment的YAML文件,如下…...

什么是会话固定以及如何在 Node.js 中防止它
什么是会话固定以及如何在 Node.js 中防止它 在深入讨论之前,我们需要了解会话是什么以及会话身份验证如何工作。 什么是会话? 正如我们所知,HTTP 请求是无状态的,这意味着当我们发送登录请求时,并且我们有有效的用…...
代码随想录算法训练营第五十二天|300. 最长递增子序列、674. 最长连续递增序列、718. 最长重复子数组
第九章 动态规划part13 300. 最长递增子序列 给你一个整数数组 nums ,找到其中最长严格递增子序列的长度。 子序列 是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序。例如,[3,6,2,7] 是数…...
使用 Hugging Face Transformer 微调 BERT
微调 BERT有助于将其语言理解能力扩展到更新的文本领域。BERT 的与众不同之处在于它能够掌握句子的上下文关系,理解每个单词相对于其邻居的含义。我们将使用 Hugging Face Transformers 训练 BERT,还将教 BERT 分析 Arxiv 的摘要并将其分类为 11 个类别之一。 为什么微调 BER…...
Vue原型对象
原型对象 prototype 称为:显示的原型属性,用法:函数.prototype,例如:Vue.prototype __proto__称为:隐式的原型属性,用户:实例.proto,例如:vm.proto 不管如何 …...

向量数据库的分类概况
保存和检索矢量数据的五种方法: 像 Pinecone 这样的纯矢量数据库 全文搜索数据库,例如 ElasticSearch 矢量库,如 Faiss、Annoy 和 Hnswlib 支持矢量的NoSQL 数据库,例如 MongoDB、Cosmos DB 和 Cassandra 支持矢量的SQL 数据库&am…...
工业镜头的类别
工业镜头的类别 按照等效焦距分为: 广角镜头 中焦距镜头 长焦距镜头 广角镜头 等效焦距小于标准镜头(等效焦距为50mm)的镜头。特点是最小工作距离短,景深大,视角大。常常表现为桶形畸变。 中焦距镜头 焦距介于广角镜…...
实验11 SQL互联网业务查询-2
这就是SQL题带给我的自信😕 可能发题解到博客上,主要是写完一遍实在不想看第二遍,太长了,优化都不想优化,看着头疼。 技术栈 – WhiteNights Site 一 USE mydata; #请在此处添加实现代码 ########## Begin #######…...
C++知识点梳理:C++ templates
c模板包括:类模板、类(非模板类和模板类)方法模板、函数模板、别名模板、变量模板。 类模板模板参数列表说明: 1)类定义 仅模板参数列表声明,template<>行。 类名后无需参数说明<>。 2…...

uniapp form表单提交事件手动调用
背景: UI把提交的按钮弄成了图片,之前的button不能用了。 <button form-type"submit">搜索</button> 实现: html: 通过 this.$refs.fd 获取到form的vue对象。手动调用里面的_onSubmit()方法。 methods:…...

Accelerate 0.24.0文档 三:超大模型推理(内存估算、Sharded checkpoints、bitsandbytes量化、分布式推理)
文章目录 一、内存估算1.1 Gradio Demos1.2 The Command 二、使用Accelerate加载超大模型2.1 模型加载的常规流程2.2 加载空模型2.3 分片检查点(Sharded checkpoints)2.4 示例:使用Accelerate推理GPT2-1.5B2.5 device_map 三、bitsandbytes量…...

HackTheBox-Starting Point--Tier 2---Markup
文章目录 一 Markup测试过程1.1 打点1.2 权限获取1.3 权限升级 二 题目 一 Markup测试过程 1.1 打点 1.端口扫描 nmap -A -Pn -sC 10.129.95.1922.访问web网站,登录口爆破发现存在弱口令admin:password 3.抓包,发现请求体是XML格式 4.尝试使…...
生成xcframework
打包 XCFramework 的方法 XCFramework 是苹果推出的一种多平台二进制分发格式,可以包含多个架构和平台的代码。打包 XCFramework 通常用于分发库或框架。 使用 Xcode 命令行工具打包 通过 xcodebuild 命令可以打包 XCFramework。确保项目已经配置好需要支持的平台…...

.Net框架,除了EF还有很多很多......
文章目录 1. 引言2. Dapper2.1 概述与设计原理2.2 核心功能与代码示例基本查询多映射查询存储过程调用 2.3 性能优化原理2.4 适用场景 3. NHibernate3.1 概述与架构设计3.2 映射配置示例Fluent映射XML映射 3.3 查询示例HQL查询Criteria APILINQ提供程序 3.4 高级特性3.5 适用场…...

【JVM】- 内存结构
引言 JVM:Java Virtual Machine 定义:Java虚拟机,Java二进制字节码的运行环境好处: 一次编写,到处运行自动内存管理,垃圾回收的功能数组下标越界检查(会抛异常,不会覆盖到其他代码…...

NFT模式:数字资产确权与链游经济系统构建
NFT模式:数字资产确权与链游经济系统构建 ——从技术架构到可持续生态的范式革命 一、确权技术革新:构建可信数字资产基石 1. 区块链底层架构的进化 跨链互操作协议:基于LayerZero协议实现以太坊、Solana等公链资产互通,通过零知…...
CRMEB 框架中 PHP 上传扩展开发:涵盖本地上传及阿里云 OSS、腾讯云 COS、七牛云
目前已有本地上传、阿里云OSS上传、腾讯云COS上传、七牛云上传扩展 扩展入口文件 文件目录 crmeb\services\upload\Upload.php namespace crmeb\services\upload;use crmeb\basic\BaseManager; use think\facade\Config;/*** Class Upload* package crmeb\services\upload* …...

【Oracle】分区表
个人主页:Guiat 归属专栏:Oracle 文章目录 1. 分区表基础概述1.1 分区表的概念与优势1.2 分区类型概览1.3 分区表的工作原理 2. 范围分区 (RANGE Partitioning)2.1 基础范围分区2.1.1 按日期范围分区2.1.2 按数值范围分区 2.2 间隔分区 (INTERVAL Partit…...
Element Plus 表单(el-form)中关于正整数输入的校验规则
目录 1 单个正整数输入1.1 模板1.2 校验规则 2 两个正整数输入(联动)2.1 模板2.2 校验规则2.3 CSS 1 单个正整数输入 1.1 模板 <el-formref"formRef":model"formData":rules"formRules"label-width"150px"…...

零基础在实践中学习网络安全-皮卡丘靶场(第九期-Unsafe Fileupload模块)(yakit方式)
本期内容并不是很难,相信大家会学的很愉快,当然对于有后端基础的朋友来说,本期内容更加容易了解,当然没有基础的也别担心,本期内容会详细解释有关内容 本期用到的软件:yakit(因为经过之前好多期…...
探索Selenium:自动化测试的神奇钥匙
目录 一、Selenium 是什么1.1 定义与概念1.2 发展历程1.3 功能概述 二、Selenium 工作原理剖析2.1 架构组成2.2 工作流程2.3 通信机制 三、Selenium 的优势3.1 跨浏览器与平台支持3.2 丰富的语言支持3.3 强大的社区支持 四、Selenium 的应用场景4.1 Web 应用自动化测试4.2 数据…...

Vue ③-生命周期 || 脚手架
生命周期 思考:什么时候可以发送初始化渲染请求?(越早越好) 什么时候可以开始操作dom?(至少dom得渲染出来) Vue生命周期: 一个Vue实例从 创建 到 销毁 的整个过程。 生命周期四个…...