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

FE_Vue学习笔记 框架的执行流程详解

1 分析脚手架结构

1CLI就是 command line interface 的缩写。Vue CLI官网:Vue CLI2)安装过程:
(PS:
提前安装过node.js了,没有安装的可以打开这个:Download | Node.js
已经安装的可以检查node.js和npm版本及安装情况:
检查nodejs : node -v
检查npm : npm -v (这两个指令均出现版本号为安装成功)
)①配置npm淘宝镜像:npm config set registryhttps://registry.npm.taobao.org
(这一步可以让vue的安装更加快速,可有可无,但是建议还是安装一下)②第一步(仅第一次执行),全局安装@vue/cli : npm install -g @vue/cli③第二步,切换到你要创建项目的目录,然后使用命令创建项目 : vue create xxxx (xxxx为项目名,最好不要取vue、jQuery这种名字)④第三步,启动项目 : npm run serve

在这里插入图片描述

2 整个流程

  1. 执行npm run serve,随后来到src中找到【整个项目的入口文件】main.js,这个js页面中引入了Vue、App.vue、关闭了提示等。
// ps: 该文件是整个项目的入口文件
// step1 引入Vue
import Vue from 'vue'
// step2 引入App组件-所有组件的父组件
import App from './App.vue'
// 关闭Vue的生产提示
Vue.config.productionTip = false
// step3 创建Vue实例对象 --- vm
new Vue({// step4 将App组件放入容器中render: h => h(App),
}).$mount('#app')
  1. 继续找到App.vue页面,看到这个页面中引入了HelloWorld,于是就到components文件夹中找到这个并执行,执行最终汇总到了App.vue页面。
**App.vue**
<template><div id="app"><HelloWorld msg="Welcome to Your Vue.js App"/></div>
</template><script>
import HelloWorld from './components/HelloWorld.vue'export default {name: 'App',components: {HelloWorld}
}
</script><style>
</style>
**HelloWorld.vue**
<template><div class="hello"><h1>{{ msg }}</h1></div>
</template><script>
export default {name: 'HelloWorld',props: {msg: String}
}
</script><style scoped>
</style>
  1. 再回到main.js页面,把App组件放入容器中。
  2. 再找到index.html(容器),把东西放到这个里面。

流程图如下所示:

在这里插入图片描述

3 针对 main.js 的 render函数 - 模板解析器

我们做一个demo来引入这个问题:
在这里插入图片描述
此时页面有问题:此时,在main.js中引入的vue是残缺版的。缺少了模板解析器:
在这里插入图片描述
解决方案一 :我们可以引入完整的vue

import Vue from 'vue/dist/vue'
import Vue from 'vue/dist/vue'
import App from './App'
new Vue({el: '#app',template: `<App></App>`,components: {App}
})

解决方案二 :render
在这里插入图片描述
最终得到:

import Vue from 'vue'
import App from './App.vue'
Vue.config.productionTip = false
new Vue({// 将App组件放入容器中render: h => h(App),
}).$mount('#app')

为什么不直接引入vue.js?

vue中包含了两种东西: 核心(比如说生命周期、处理事件等)和模板解析器。完整的vue中有三分之一都是模板解析器【vue -> js】,之后webpack打包完成后,会生成一个非常大的文件,这个时候vue的模板解析器就不适合出现在这里,没有作用【这里模板已经编译完成了,浏览器可以认识了】。vue文件中,带有runtime的都表示运行时的vue。简而言之,没有了模板解析器的vue体积很小,打包之后能够更加轻量,代价就是写的时候要用那行render去写。

关于不同版本的Vue:
1、 vue.js 与 vue.runtime.xxx.js 的区别:

  • 1)vue.js 是完整版的Vue,包含:核心功能+模板解析器。
  • 2)vue.runtime.xxx.js 是运行版的Vue,只包含核心功能,没有模板解析器。

2、因为 vue.runtime.xxx.js 没有模板解析器,所以不能使用template配置项,需要使用render函数接收到的createrElement函数去指定具体内容

http://www.lryc.cn/news/67124.html

相关文章:

  • KingbaseES V8R6 等待事件之LWLock Buffer_IO
  • 桂院导航小程序 静态项目 二次开发教程
  • 即时通讯APP开发费用成本多少?
  • 女生学大数据好找工作么
  • 02-mysql升级篇(rpm方式+压缩包升级)
  • 【Java零基础入门篇】第 ④ 期 - 继承(三)
  • Python Selenium搭建UI自动化测试框架
  • 开发大语言模型需要数据?算法?算力?
  • CSS选择器的常见用法
  • Oracle EBS修改密码
  • 《花雕学AI》33:如何用XMind制作AI思维导图、鱼骨图和组织结构图
  • 【rust】| 06——语言特性 | 所有权
  • AUTOSAR入门
  • 运维高可用架构的 6 大常规方案
  • Java设计模式-桥接模式
  • 计及N-k安全约束的含光热电站电力系统优化调度模型【IEEE14节点、118节点】(Matlab代码实现)
  • 欧拉函数详解
  • 手把手教你如何将安卓手机数据导入iPhone!【详解】
  • 怎么轻松地搞定Win11系统备份任务?
  • MySQL集群
  • 关于Kerberos认证的一些攻击手法学习总结
  • STL-deque容器
  • ❤ go语言和java语言的优缺点
  • 安全成就未来|Fortinet Accelerate 2023·中国区巡展首站启幕
  • 输入URL到显示界面的整个过程
  • BetaFlight飞控启动运行过程简介
  • 智能汽车实验二(视觉传感器标定)
  • 计算机网络:HTTP
  • Go 语言接口
  • 常用的intellij的快捷键