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

时尚大气网站设计优化大师如何删掉多余的学生

时尚大气网站设计,优化大师如何删掉多余的学生,ui设计培训学校哪家好,专业网站建设分为8步文章目录 前言一、使用RuntimeCompiler解析$mount的原因二、$mount 解析的详细过程1.解析挂载的#app执行了vm.$mount2. 通过$mount方法执行以下文件的mount方法3. 执行util工具文件夹中的query方法4. 执行query方法后返回$mount方法判断el是否是body5. 判断!options.render&…

文章目录

  • 前言
  • 一、使用Runtime+Compiler解析$mount的原因
  • 二、$mount 解析的详细过程
    • 1.解析挂载的#app执行了vm.$mount
    • 2. 通过$mount方法执行以下文件的mount方法
    • 3. 执行util工具文件夹中的query方法
    • 4. 执行query方法后返回$mount方法判断el是否是body
    • 5. 判断!options.render
      • (1)options.render是否为真
      • (2)判断是否使用了template
      • (3)判断是否是el
      • (4)返回的 mount 的方法
    • 6. 解析mountComponent方法
  • 总结


前言

Runtime Only 和 Runtime+Compiler的区别
通常我们利用 vue-cli 去初始化我们的 Vue.js 项目的时候会询问我们用Runtime Only 版本的还是 Runtime+Compiler 版本。
Runtime Only:我们在使用 Runtime Only 版本的 Vue.js 的时候,通常需要借助如 webpack的 vue-loader 工具把 .vue 文件编译成 JavaScript,因为是在编译阶段做的,所以它只包含运行时的 Vue.js 代码,因此代码体积也会更轻量。
Runtime+Compiler:我们如果没有对代码做预编译,但又使用了 Vue 的 template 属性并传入一个字符串,则需要在客户端编译模板。如下所示:

// 需要编译器的版本
new Vue({
template: '<div>{{ hi }}</div>'
})
// 这种情况不需要
new Vue({render (h) {return h('div', this.hi)
}

因为在 Vue.js 2.0 中,最终渲染都是通过 render 函数,如果写 template 属性,则需要编译成 render 函数,那么这个编译过程会发生运行时,所以需要带有编译器的版本。
很显然,这个编译过程对性能会有一定损耗,所以通常我们更推荐使用Runtime-Only 的 Vue.js。


一、使用Runtime+Compiler解析$mount的原因

Vue中我们通过 $mount 方法去挂载vm,而 $mount 方法在多个文件中都有定义。如源码 src\platforms\web\runtime\index.ts src\platforms\web\runtime-with-compiler.ts 等文件。由于使用纯前端的方式分析源码,所以我这里分析 Compiler 版本的 $mount,有利于对原理深入的理解。

src\platforms\web\runtime\index.ts的方法较为简单,如下图
在这里插入图片描述

二、$mount 解析的详细过程

1.解析挂载的#app执行了vm.$mount

在这里插入图片描述

2. 通过$mount方法执行以下文件的mount方法

路径:src\platforms\web\runtime-with-compiler.ts
在这里插入图片描述

3. 执行util工具文件夹中的query方法

路径:src\platforms\web\util\index.ts
也就是main.js 中el: ‘#app’ 传入的话,就会执行1.1获取对应的元素
在这里插入图片描述

4. 执行query方法后返回$mount方法判断el是否是body

在这里插入图片描述

5. 判断!options.render

在这里插入图片描述

(1)options.render是否为真

下一章节会详细讲解

(2)判断是否使用了template

也就是使用Runtime Only 需要编译的写法,这个在前言中详细说明了,可以返回顶部详细看看。

// 使用了template配置的写法
import Vue from 'vue'
var app = new Vue({el: '#app',template: '<div>{{ message }}</div>',  // 使用了templatedata() {return {message: '我是一个双向绑定的数据'}}
})

(3)判断是否是el

如果是el,就执行getOutHtml方法,获取main.js中el的id名的div元素
在这里插入图片描述

(4)返回的 mount 的方法

在这里插入图片描述
路径:src\platforms\web\runtime\index.ts
在这里插入图片描述

6. 解析mountComponent方法

路径 src\core\instance\lifecycle.ts
执行updateComponent方法,通过Watcher根据数据更新执行。感兴趣可以查看Watcher里面的配置即可。

在这里插入图片描述


总结

这就是$mount 挂载的过程

http://www.tj-hxxt.cn/news/43887.html

相关文章:

  • 做电力公司网站seoer是什么意思
  • php可视化网站开发工具福州网站seo优化公司
  • 东莞做购物网站宁德市房价
  • 毕业设计做啥网站好郑州网站排名优化公司
  • 唐山市做网站seo优化是什么职业
  • 济源网站维护沈阳seo合作
  • 软件技术方案模板网站关键词优化排名软件系统
  • 手机创建网站中文域名交易网站
  • 墨刀做网站百度图片识别在线识图
  • 网站后台更新缓存失败百度用户服务中心官网
  • 易企秀怎么做网站网络营销的目的和意义
  • 做网站和做微商城有什么区别seo接单平台
  • 青海网站建设价格希爱力的作用与功效
  • 微网站免费软件外贸推广平台有哪几个
  • 品牌建设网站公司武汉seo服务
  • 河南住房和城乡建设厅网站特种最近国内新闻
  • 网络营销案例分析1000字厦门专业做优化的公司
  • 网站如何做超级链接镇江抖音seo
  • 在国外做盗版网站线下营销推广方式有哪些
  • 长春电商网站建设价格百度指数分析数据
  • 知名网站制作公司360推广和百度推广哪个好
  • 那些域名可以做后缀做网站企业关键词优化专业公司
  • 网站建设优化服务好么东莞网站快速排名提升
  • 国内的优秀设计网站怎样做好销售和客户交流
  • 做网站最好的公司有哪些哈尔滨最新今日头条新闻
  • 宜昌网站网站建设百度小说搜索排行榜
  • 高校网站建设模板seo百度发包工具
  • 西安做网站要多少钱seo公司官网
  • 网络框架网站seo诊断
  • 湖北做网站系统哪家好买卖友情链接