用console.log看Vue

栏目: 编程语言 · 发布时间: 7年前

内容简介:本文通过控制台输出的效果图请用chrome查看,并打开控制台看效果演示地址

本文通过 console.log 的一些特性,结合 vue.js 的源码,通过一个简单的例子,让你了解 Vue 的各个过程的变化.

控制台输出的效果图

用console.log看Vue
用console.log看Vue

请用chrome查看,并打开控制台看效果演示地址

准备

vue-console.html 的创建

下载 vue.js 文件,在 vue-console.html 中引入,我写了一个简单的例子,涵盖:初始化视图->点击后更新视图(包括各个钩子函数)

代码如下:

<script src="./vue.js"></script>
  <div id="app">
    <div id="hi" @click="changeName">{{name}}</div>
  </div>
  </div>
    <script>
    var style = 'font-size: 20px;color: blue'
    var vm = new Vue({
      el:'#app',
      data() {
        return {
          name: '点我',
        }
      },
      beforeCreate () {
        console.log('%cI am beforeCreate------ 我在选项里写的', style)
      },
      created () {
        console.log('%cI am created------ 我在选项里写的', style)
      },
      beforeMount () {
        console.log('%cI am beforeMount------ 我在选项里写的', style)
      },
      mounted () {
        console.log('%cI am mounted------ 我在选项里写的', style)
      },
      beforeUpdate () {
        console.log('%cI am beforeUpdate------ 我在选项里写的',style)
      },
      updated () {
        console.log('%cI am updated------ 我在选项里写的', style)
      },
      methods: {
        changeName () {   // 点击是文本发生变化
          this.name = 'jike'
        } 
      }
    })  
  </script>
复制代码

console.log样式的配置

var tagLeftStyle = [
  'color: #fff',
  'border-top-left-radius:3px',
  'border-bottom-left-radius:3px',
  'background-color: #564b4f',
  'padding: 5px'
].join(';')

var tagRightStyle = function (color) {
  color = color?color:'#0BCF1B'
  return [
    'color: #fff',
    'border-top-right-radius:3px',
    'border-bottom-right-radius:3px',
    `background-color: ${color}`,
    'padding: 5px'
  ].join(';')
}
// ...
// 一些样式省略,具体可以去看源码
var tagVariable = function (obj, tag, desc, num, detail, color) {
  console.log(`%c${lineNo} %o%c<---%c${tag}%c${desc}  %c源码${num}行 %c说明: %o`, noStyle, obj, arrowStyle ,tagLeftStyle, tagRightStyle(color), sourceNoStyle, detailStyle, detail)
  lineNo++
}
// %c代表后面的文本,使用css样式,%o代表对象输出
复制代码
用console.log看Vue
上面的代码只要调用 tagVariable(...) 传递参数,就实现上图 的标签效果, 还可以 console.log 显示图片,加了一下讲解图方便理解;
用console.log看Vue
通过调用上面封装的函数在 vue.js 某些时刻调用,就达到很好的效果

项目过程

我将整个过程分为四个阶段: 构造函数阶段初始化阶段挂载阶段更新阶段 , 会以上面提到的例子贯穿的

构造函数阶段

平常我们使用 Vue ,都是用 new Vue({}) ,其实就是调用它的构造函数创建实例,如下图

用console.log看Vue

初始化阶段

会对我们传入 datamethods 等处理,便于后面阶段的调用及一些功能的实现 如例子的 dataname 会被代理到 vm 实例上,所以我们可以用 this.name 调用

data() {
  return {
    name: '点我',
  }
}
复制代码
用console.log看Vue

挂载阶段

<div id="app">
  <div id="hi" @click="changeName">{{name}}</div>
</div>
复制代码

会将上面的 html 渲染成视图(这里面包括渲染函数,虚拟dom的实现等)

用console.log看Vue

以上所述就是小编给大家介绍的《用console.log看Vue》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

深入浅出Struts 2

深入浅出Struts 2

Budi Kuniawan / 杨涛、王建桥、杨晓云 / 人民邮电出版社 / 2009-04 / 59.00元

本书是广受赞誉的Struts 2优秀教程,它全面而深入地阐述了Struts 2的各个特性,并指导开发人员如何根据遇到的问题对症下药,选择使用最合适的特性。作者处处从实战出发,在丰富的示例中直观地探讨了许多实用的技术,如数据类型转换、文件上传和下载、提高Struts 2应用的安全性、调试与性能分析、FreeMarker、Velocity、Ajax,等等。跟随作者一道深入Struts 2,聆听大量来之......一起来看看 《深入浅出Struts 2》 这本书的介绍吧!

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具