Knotjs教程系列

1.CBS初步

2.Knot.js Debugger(本文)

....持续增加中

Knot.js 教程2 - 改变前端框架开发体验的Debugger

Debugger只是一个方便开发的附属工具,按道理说是不值得单独为之写一篇文章的。不过Knot.js的Debugger绝对值得一篇文章。

有过框架开发体验的朋友一定多少都有过和框架搏斗的经验。一个小小的设置错误,由于你对框架的不够熟悉,导致出错后完全摸不到头脑。或者被迫在一堆陌生的代码中跟踪尝试找出问题,或者只有上网到处拉人提问。

Knot.js的Debugger能很大程度地改善这个问题。

经常弄CSS的一定都离不开浏览器自带的DOM Inspector工具,它能实时查看网页上各个元素的状态和应用CSS的情况,对CSS的查错调试至关重要

Knot.js的Debugger,对于CBS开发者而言,具有和DOM Inspector一样的意义。

你能随时查看CBS应用到HTML元素上的情况,实时监控每一个访问点上最新的数据变化,还能查看整个页面内的数据变化日志。用好Debugger,knot.js基本上对你而言就是一个白盒系统,内部的工作逻辑一览无遗。

Knot.js Debugger不只对于调试程序管用,对于学习knot.js也极为有用。所以我在knot.js官方网站的tutorial中全部启用了Debugger,你能实时观察任何一个例子的数据和绑定情况。这对于了解knot.js的工作模式是非常有帮助的。

要在你自己的程序中启用Knot.js Debugger,只需引用knot.js Debugger文件即可:

 <script src="[PATH_TO_DEBUGGER]/knot.debug.js"></script>

启用Debugger之后,你会在窗口右下角发现一个绿色的甲虫图标,点击图标就能打开Debugger窗口。 当页面内有knot.js发出的警告信息或者错误信息的时候,甲虫图标会变化并闪动。如果没有警告和错误信息,同时Debugger窗口也已经打开,则图标会消失。

Debugger界面如下:

显示的信息很简单,你一试就能明白。我们重点说一下几个功能控件的作用:

  • 顶部的filter可以用来过滤你要监控的节点,输入内容点击放大镜后将只显示标签/绑定选项中包含有这些文字的节点。
  • 点击放大镜旁边的定位按钮之后,你可以到自己的页面中用鼠标点击选取一个HTML元素,选取后将只显示这个元素
  • 漏斗图标用于清除当前过滤选项
  • 点击HTML元素后面的灯泡图标,则该HTML元素将被高亮提示。
  • 点击HTML元素后面的气泡按钮,查看该元素的当前DataContext
  • 点击绑定选项之后的气泡按钮,则查看该元素最新数据的JSON

如果你对knot.js感兴趣,请关注我以获取后续更新提醒。同时请点击推荐此文,knot.js需要足够的注意力来吸引开发者和建立自己的社区。

knot.js感谢你的支持。

MVVM开源框架Knot.js 教程2 - 大幅改变前端框架开发体验的Debugger的更多相关文章

  1. MVVM开源框架Knot.js 教程1 - CBS初步

    Knotjs教程系列 1.CBS初步(本文) 2.Knot.js Debugger ....持续增加中 CBS初步 学习Knot.js,实际上就是学习如何使用CBS.CBS使用和CSS类似的原理,将绑 ...

  2. Spring+SpringMvc+Mybatis框架集成搭建教程二(依赖配置及框架整合)

    依赖导入以及框架整合 (1).打开项目的pom.xml文件,声明依赖 <project xmlns="http://maven.apache.org/POM/4.0.0" x ...

  3. Sea.js提供简单、极致的模块化开发体验

    为什么使用 Sea.js ? Sea.js 追求简单.自然的代码书写和组织方式,具有以下核心特性: 简单友好的模块定义规范:Sea.js 遵循 CMD 规范,可以像 Node.js 一般书写模块代码. ...

  4. 一款简单而不失强大的前端框架——【Vue.js的详细入门教程①】

    ↓— Vue.js框架魅力 —↓ 前言       Vue.js 是一个构建数据驱动的 web 界面的渐进式框架.Vue.js 的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件.V ...

  5. (转)2018几大主流的UI/JS框架——前端框架 [Vue.js(目前市场上的主流)]

    https://blog.csdn.net/hu_belif/article/details/81258961 2016年开始应该是互联网飞速发展的几年,同时也是Web前端开发非常火爆的一年,Web ...

  6. Spring+SpringMvc+Mybatis框架集成搭建教程

    一.背景 最近有很多同学由于没有过SSM(Spring+SpringMvc+Mybatis , 以下简称SSM)框架的搭建的经历,所以在自己搭建SSM框架集成的时候,出现了这样或者那样的问题,很是苦恼 ...

  7. Web前端框架与类库的思考

    说起前端框架,我也是醉了.现在去面试或者和同行聊天,动不动就这个框架碉堡了,那个框架好犀利. 当然不是贬低框架,只是有一种杀鸡焉用牛刀的感觉.网站技术是为业务而存在的,除此毫无意义,框架也是一样.在技 ...

  8. Web前端框架与类库

    Web前端框架与类库的思考 说起前端框架,我也是醉了.现在去面试或者和同行聊天,动不动就这个框架碉堡了,那个框架好犀利. 当然不是贬低框架,只是有一种杀鸡焉用牛刀的感觉.网站技术是为业务而存在的,除此 ...

  9. Web前端框架与类库的思考【转】

    前端框架的理解误区 网站的价值在于它能为用户提供什么价值,在于网站能做什么,而不在于它是怎么做的,所以在网站还很小的时候就去追求网站的架构框架是舍本逐末,得不偿失的.前端框架同理,如果是一个简单的页面 ...

随机推荐

  1. java加密算法--MD5加密和哈希散列带秘钥加密算法源码

    package com.ompa.common.utils; import java.security.MessageDigest; import java.security.NoSuchAlgori ...

  2. 为TFS配置跨平台的生成服务器Xplat (Ubuntu Linux)

    1. 概述 从TFS 2015开始,微软开始支持跨平台的构建代理.你可以使用TFS的Xplat代理,方便的在基于IOS, Unix和Linux的服务器上搭建生成代理,实现构建.发布等功能.本文档已Ub ...

  3. Codeforces Round #FF/#255 D DZY Loves Modification --贪心+优先队列

    题意:给你一个矩阵,每次选某一行或者某一列,得到的价值为那一行或列的和,然后该行每个元素减去p.问连续取k次能得到的最大总价值为多少. 解法: 如果p=0,即永远不减数,那么最优肯定是取每行或每列那个 ...

  4. C++中不能声明为虚函数的有哪些函数

    常见的不不能声明为虚函数的有:普通函数(非成员函数):静态成员函数:内联成员函数:构造函数:友元函数. 1.为什么C++不支持普通函数为虚函数? 普通函数(非成员函数)只能被overload,不能被o ...

  5. MyBatis学习总结(一)

    一.Mybatis介绍 MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装.MyBatis可以 ...

  6. 使用Unity3D的50个技巧:Unity3D最佳实践

    翻译故事 原文:http://devmag.org.za/2012/07/12/50-tips-for-working-with-unity-best-practices/ 这篇技巧,我自己也在翻译, ...

  7. Mobile Prototype Dev Res Collection(Unity原型开发资源储备)

    资源储备 本文针对mobile原型开发阶段的资源收集 在做移动端的开发时,当有灵感想做些东西时,若是此时缺少美术资源和可用的脚本,此刻会有些纠结,今天在Assets Store上Mark了一些移动端开 ...

  8. WindowXP与WIN7环境安装、破解、配置AppScan8.0

    ---------------------------------------------------------------------------------------------------- ...

  9. 【MFC】WM_GETMINMAXINFO 设置无边框窗口最大花不遮挡任务栏

    LRESULT OnGetMinMaxInfo( UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM lParam, BOOL& /*bHandled*/ ) { ...

  10. [Elixir009]像GenServer一样用behaviour来规范接口

    1.Behaviour介绍 Erlang/Elixir的Behaviour类似于其它语言中的接口(interfaces),本质就是在指定behaviours的模块中强制要求导出一些指定的函数,否则编译 ...