当前位置:首页 > 技术分析 > 正文内容

手抓手带你使用 vue devtools

ruisui884周前 (04-01)技术分析23

1. 安装

(1)在github上下载devtools源码,地址:
https://github.com/vuejs/vue-devtools

(2)下载后进入vue-devtools工程,执行npm install,然后npm run build。

(3)编译完成后修改
/shells/chrome/manifest.json的persistant为true

(4)打开浏览器右上角的设置-->更多工具-->扩展程序,打开开发者模式

(5)然后将刚刚编译后的shells下的chrome文件夹拖拽到浏览器中。

2. 使用

只有当Vue.config.devtools === true时才可使用devtools。

2.1 components面板 components面板内可以看到我们定义的一系列组件,选中相应的组件后,右侧面板可以看到组件内的data、props、computed、attrs属性。

同时,data属性是可以编辑的,编辑后页面也会实时改变

选中Select后可以实时的选中页面中的组件,快速定位到调试面板对应的组件

鼠标右键 --> Inspect Vue component,也可以快速定位组件。 可以根据组件名字去筛选组件

还可以筛选数据

点击Inspect Dom可以直接定位到Elements面板内的DOM元素

每个组件实例都有一个变量,当前选中的组件是$vm0,其余组件从上到下升序赋值($vm1、$vm2、$vm3...),控制台直接打印$vm0可以直接看到这个实例。


2.2 Vuex面板

Vuex面板可以记录每一次mutation。点击对应的mutation记录在右边可以看到mutation提交的详细信息,跟此时state的状态。

同时你可以筛选mutation与state

鼠标滑过mutation记录会出现commit、revert、Time Travel, commit: 保存指定的mutation,mutation记录最上面Base State会变为这次mutation的state,同时这次commit之前的mutation都会删掉。 revert: 还原到指定mutation,当前的state变为知道mutation的state,revert之后的记录都会删掉。 Time Travel: 时光旅行,state的数据切换到指定mutation,但所有记录都会保存。

Vuex面板支持导出/导入state的功能 导出: 将state复制到剪切板。 导入: 支持将json数据直接导入到vuex中。


2.3 Events面板

Events面板可以记录每次$emit触发的事件,右侧可以看到事件的详细信息,同样支持筛选。

name: 事件名 type: 事件类型,为了兼容Vue1.x,在Vue1.x中通过$dispatch触发事件,此时type为$dispatch source: 触发事件的组件 paload: 载荷,触发事件时传递的参数

2.4 Routing面板

Routing面板有个选项:history、routes history记录了每一次路由变化,但是注意这里的history !== window.history,每一次路由变化都会push到history里,即便你是this.$replace跳转的路由。

右侧会显示详细信息,面板当中的from、to跟vue-router路由钩子中from、to代表相同的意思。

routes展示所有的路由,基本就是vue-router中routes的可视化展示。

2.5 Performance

performance可以帮助我们分析页面跟组件的渲染情况,它有两个功能Frames per second、Component render。

Frames per second(fps): 浏览器每秒渲染多少帧,即每秒渲染多少次页面。蓝色柱体越高代表fps越高,代表页面越流畅。它同时可以记录引起页面渲染的原因,例如M、E、R。 M: mutation E: events R: routes

Component render可以记录组件的渲染时间,注意这个时间是累加的,例如这个组件渲染了两次,那渲染时间是这两次的总时长。 同时也可以看到组件内每个生命周期钩子的执行时长。

2.6 Settings

Normalize component name: Components面板组件名字显示风格,origin name原始组件名,Pascal case大驼峰,Kebab case中横线。

Editable props: 是否支持props属性可编辑,默认情况下components面板内的props属性不可编辑。

New Vuex backend: 是否让Vuex面板单独在后台运行,更快且更少的内存占用。

Theme: 主题。 Time Format -> Display milliseconds: 时间格式显示到毫秒,目前未看到在哪体现。 Atuoload Vuex state: 是否自动加载vuex state,目前未看到效果。

总结

希望这篇文章可以帮助大家更好的使用 vue-devtools

不要忘记点赞呀:D

扫描二维码推送至手机访问。

版权声明:本文由ruisui88发布,如需转载请注明出处。

本文链接:http://www.ruisui88.com/post/3236.html

分享给朋友:

“手抓手带你使用 vue devtools” 的相关文章

neovim 0.9在win下配置 python开发环境

初级的一些配置点击下面链接查看neovim安装插件管理器neovim常用快捷键neovim python开发环境简易配置方法 (需要手动键入命令行 运行python)安装neovim python的模块pip install pynvim pip install jedi pip install n...

Solid State Logic 发布低保真数字失真插件 Digicrush

Solid State Logic 宣布推出低保真数字失真插件 Digicrush ,他们最新的创意工具具有经典数字失真的粗糙、低保真特性,完美模拟早期数字音频的衰减和伪影。Digicrush 充满怀旧气息,深受经典数字采样器和效果器的影响,具有内置抖动、可调比特深度和采样率降低功能,是为音轨添加复...

一文让你彻底搞懂 vue-Router

路由是网络工程里面的专业术语,就是通过互联把信息从源地址传输到目的地址的活动。本质上就是一种对应关系。分为前端路由和后端路由。后端路由:URL 的请求地址与服务器上的资源对应,根据不同的请求地址返回不同的资源。前端路由:在单页面应用中,根据用户触发的事件,改变URL在不刷新页面的前提下,改变显示内容...

深入理解vue-router原理

说到vue-router就表明他只适合于vue和vue是强绑定的关系;不适合其他框架;现在我们模仿实现一个VueRouter;1.要使页面刷新;借助vue本身的响应式原理;import Home from "./views/Home"; import About from "...

微信外H5跳转小程序——组件(vue项目)

场景有个H5(vue项目),需要实现点击商品item跳转到小程序,微信内和微信外都要支持,这里我们只介绍一下H5在微信外的跳转。如图所示,红框内是一个商品,就是点击这里,要跳转小程序:配置微信小程序云开发(云函数)1、开通云开发然后选择免费额度2、云开发权限设置找到权限设置,把这里的「未登录用户访问...

vue.js 双向绑定如何理解,有什么好处!#云南小程序开发

Vue.js 的双向数据绑定是借助于 JavaScript 的一些特性,如对象的属性 getter 和 setter 以及 Vue 的依赖追踪系统实现的。简单来说,双向数据绑定就是数据与视图间的双向通信,也就是说数据的改变会马上反映到视图中,视图的改变也会立刻改变数据。具体来说,当你改变了数据时,视...