FE_Vue框架的执行流程详解

news2024/10/6 10:29:35

1 分析脚手架结构

在这里插入图片描述

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.coloradmin.cn/o/510023.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Android9.0 Charles 模拟器抓包

目录 只想做条安静的咸鱼&#xff0c;混吃等死又一天 一、下载并安装配置Charles 二、下载安装Postern 三、测试抓包 一、下载并安装配置Charles 1.Charles下载网址&#x1f447; Charles Web Debugging Proxy • HTTP Monitor / HTTP Proxy / HTTPS & SSL Proxy / Rev…

EasyPoi导出,设置不同列的字体颜色(修改easypoi 3.1.0版本源码)

声明&#xff1a;代码以esaypoi 3.1.0版本为基础&#xff0c;基本上新的代码都是直接copy源码的&#xff0c;只是稍微修改了源码&#xff1b;仍然需要导入该依赖是 <dependency><groupId>cn.afterturn</groupId><artifactId>easypoi-base</artifac…

数据建模三范式说明

三范式&#xff1a; 1.原子性&#xff1a;属性不可分割 2.唯一性&#xff1a;不能存在部分依赖 3.非冗余性&#xff1a;要求任何字段不能由其他字段派生出来、确保每列都和主键列直接相关,而不是间接相关)

案例|九江银行Zabbix监控系统实践

Zabbix监控平台建设历程 九江银行Zabbix监控系统实践&#xff0c;共分为三个部分&#xff1a; 1.Zabbix监控平台的建设历程 2.Zabbix实践经验分享 3.对未来监控的展望。 项目背景 建立新的一体化基础监控平台。为适应数字化转型的需要、新技术发展的需要及业务连续性的需…

关于使用Lombok的注意事项

文章目录 1、Lombok简介2、使用Lombok的问题2.1 驼峰问题2.2 相同的字符串不同的大小写 3、关于使用Lombok的总结4、写在最后 1、Lombok简介 Lombok项目是一个Java库&#xff0c;它会自动插入您的编辑器和构建工具中&#xff0c;从而为你优化Java代码。通过注解的方式代替我们手…

注入攻击(二)--------HTML(有源码)

前序文章 注入攻击&#xff08;一&#xff09;--------SQL注入(结合BUUCTF sqli-labs) 目录 示例网站搭建1.搭建LAMP开发环境1. MySQL2. PHP3. Apache 写在示例前示例1.反射型HTML注入页面效果源码 示例2.钓鱼表单页面效果源码 示例3.存储型HTML注入页面效果源码 示例网站搭建 …

【Docker】使用 Docker 部署 Maven 仓库

在本文中&#xff0c;将介绍如何使用 Docker 部署一个 Maven 本地私服。Maven 私服可以帮助我们管理和共享本地的 Maven 依赖&#xff0c;提高开发效率。本文将使用 Sonatype Nexus 作为 Maven 私服&#xff0c;并使用 Docker Compose 来部署和管理容器。 准备工作 在开始之前…

mysql数据库在windows服务器下安装

一、mysql安装包下载 官网下载地址&#xff1a;mysql安装包下载 如图所示&#xff1a; 二、配置my.ini文件 解压后的文件尽量不要放在C盘&#xff08;内存小&#xff09;&#xff0c;解压后如下图所示 在上图所示根目录下配置my.ini文件 1、右键创建一个文本&#xff08;.text…

pikachu靶场-Unsafe Upfileupload

文件上传漏洞简述 什么是文件上传漏洞&#xff1f;  ​ 凡是存在文件上传的地方均有可能存在文件上传漏洞&#xff0c;关于上传文件操作的时候对方代码写的是否完整、是否安全&#xff0c;一旦疏忽了某个地方可能会造成文件上传漏洞。 文件上传的原理 网站Web应用都有一些文件…

1.SpringBoot基础篇

SpringBoot 文档更新日志 版本更新日期操作描述v1.02021/11/14A基础篇 前言 ​ 很荣幸有机会能以这样的形式和互联网上的各位小伙伴一起学习交流技术课程&#xff0c;这次给大家带来的是Spring家族中比较重要的一门技术课程——SpringBoot。一句话介绍这个技术&#xff0c;…

华为pbr双出口外线,指定内网单个vlan绑定单个出口外线上网

公司两条外线&#xff0c;vlan 10用nat走上面转发出去上网&#xff0c;vlan 20 走下面那条外线出去nat上网 AR2&#xff1a; interface GigabitEthernet0/0/0 ip address 6.6.6.1 255.255.255.0 interface GigabitEthernet0/0/1 ip address 154.1.2.3 255.255.255.0 interface…

Python+Selenium4环境搭建

set集合 怎么把列表种相同的数据和不同的数据取出来 1.把列表转为set集合 2.按照集合的交集 selenium 自动化测试&#xff1a;自动化测试就是通过代码或者是工具模拟人的行为来进行对WEB&#xff08;APP&#xff09;来进行操作。 QTP (HP公司)&#xff1a;以录制回放的模式…

集7大模态(视频、图片、音频、文本、深度图、热力图、惯性)的IMAGEBIND

论文&#xff1a;IMAGEBIND: One Embedding Space To Bind Them All GitHub&#xff1a;https://github.com/facebookresearch/ImageBind Meta AI 提出了 ImageBind&#xff0c;它通过利用多种类型的图像配对数据来学习单个共享表示空间。该研究不需要所有模态相互同时出现的数…

《Kubernetes证书篇:基于cfssl工具集一键生成二进制kubernetes集群相关证书(方法一)》

一、背景信息 Kubernetes 需要 PKI 证书才能进行基于 TLS 的身份验证。如果你是使用 kubeadm 安装的 Kubernetes&#xff0c; 则会自动生成集群所需的证书。如果你是使用二进制安装的 Kubernetes&#xff0c;则需要自己手动生成集群所需的证书。 1、首先从etcd算起 1、etcd CA…

百度地图绘制地区的棱柱效果-定位-自定义点-文本标记-信息弹窗

文章目录 百度地图webgl使用自定义地图样式地区镂面棱柱效果绘制点信息以及信息弹窗 百度地图webgl使用 在项目的index.html中引入 <script type"text/javascript" src"//api.map.baidu.com/api?typewebgl&v1.0&ak你的AK秘钥"></script…

花式反转字符串

文章目录 简单反转字符串题目详情分析Java完整代码 反转链表进阶问题题目详情分析Java完整代码 左旋转字符串题目详情分析Java完整代码 反转字符串中的单词题目详情分析Java完整代码 本文对常见的反转字符串题目进行串烧整理。 简单反转字符串 题目详情 编写一个函数&#xf…

9. 对象指针与对象数组

一、对象指针 声明形式&#xff1a; 类名 *对象指针名; Clock c(8, 3, 10); Clock *ptr; ptr &c;通过指针访问对象成员&#xff08;一般类的属性都是封装起来的&#xff0c;因此通常是通过指针访问成员函数&#xff09; 对象指针名->成员名 ptr->getHour();相当于(*…

linux0.12-8-7-signal.c

[334页] (-:这一小节很难理解。但我基本都理解了&#xff0c;哈哈。 1、为什么signal不可靠&#xff0c;而sigaction可靠&#xff1b; 2、 为什么系统调用会被打断&#xff1f; 3、 sys_signal&#xff0c;sys_sigaction&#xff0c;函数作用&#xff1f; 4、 do_signal&#x…

【高项】高级项目管理与组织管理(第4版教材第20-23章,管理科学知识)

文章目录 【高项系列】知识复习1、高级项目管理&#xff08;组织级管理&#xff0c;项目集管理&#xff0c;项目组合管理&#xff0c;量化项目管理&#xff0c;项目成熟度模型&#xff09;1.1 组织级项目管理&#xff08;项目组合项目集, 战略方向一致&#xff0c;0-1分&#x…

python并发编程:并发编程中是选择多线程呢?还是多进程呢?还是多协程呢?

❝ Python对并发编程的支持非常丰富&#xff0c;可以使用多线程、多进程、协程等方式进行并发编程。那么&#xff0c;应该如何选择呢&#xff1f; ❞ Python并发编程有哪些方式 Python并发编程有三种方式: 多线程 Thread 多进程 Process 多协程 Coroutine 什么是CPU密集型计算、…