前言

上篇博文我们依葫芦画瓢已经将hello world 展现在界面上啦,但是是不是感觉新虚虚的,总觉得这么多文件,项目怎么就启动起来了呢?怎么访问到8080 端口就能进入到我们的首页呢。整个的流程是怎么样的呢?

我也是刚刚接触,所以就会有这样的困惑,所以这篇就简单的理解一下项目页面渲染的过程。

渲染过程

我们上篇文章说main.js 是无用的,是废代码,只是起到支撑框架的。但是其实我们应该有感觉,把他删除了整个项目就跑步起来了。其实main.js 算是项目的入口了。我们就从这个文件看起。

import Vue from 'vue'
import App from './App'
import router from './router' Vue.config.productionTip = false new Vue({
el: '#app',
router,
components: { App },
template: '<App/>'
})

可以看到代码非常的少,就导入了vue.js、我们的APP.vue 以及index.js

第一次做动图,操作像是老年人,大家见谅。上图可以大概的看到引入的三个文件是什么了。

Vue.config.productionTip = false 我们这里暂时不管,知道是一个配置信息就可以了,感兴趣的可以百度一下就知道什么意思了。

new Vue({
el: '#app',
router,
components: { App },
template: '<App/>'
})

上面这些,如果完全没有vue 语法知识的话,确实不知道什么意思,但是我们看官网教程,起步的时候都是在当个html 文件中使用vue 的。在js 中就会用到这个。



可以看到,其实都是差不多的,所以这里的作用就是实例化一个Vue。当然我们项目中,这里是为整个项目实例化了一个Vue ,el 指定的元素,这里就是我们index.html 中的div啦。



router 就指定路由,也就是我们在index.js 配置的路由信息。

components 指定的组件信息。项目有一个父组件就是APP.vue。我们自己写的所有组件都是在这个父组件之下的。

怎么说呢,也就是说所有的界面,最外层的div 就是APP.vue 定义的。div 中其他的div 才是我们自己写的。看下面这个应该就会有所感觉吧。



所以这里我们就可以解答上篇文章,为什么我们只是写了一个hello world 。但是为什么界面上呈现的会有图标,还有样式。因为在APP.vue 中设置了这些动洗。我们APP.vue 中的这些内容注释掉就可以看到效果。

我们将APP.vue logo和样式去掉,再来看看内容

<template>
<div id="app">
<router-view/>
</div>
</template> <script>
export default {
name: 'App'
}
</script>

是不是发现和我们在组件中自己写的Hello.vue 格式完全一样,哈哈没错,vue文件就是这样的格式。可以看到template 渲染的是id 为app 的盒子(div)。这里应该是覆盖了index.html中的d 也为app 的盒子。

所有的 router-view 中的内容,都会被自动替换。

script 中的代码则是脚本代码。

至此,整个过程就出来了:项目启动首先会读取main.js 。实例化一个vue,然后渲染APP.vue 文件内容,我们自己写的vue 组件则是通过路由转接到父组件下的。

番外

我们项目的流程就讲到这里把,算是对上篇的补充,让我们对项目启动,界面渲染算是有一个大概的了解啦,我们接下来就按照官网上讲一下vue 的一些语法和特性,但是与官网上不同的是,官网上都是一个个的html,而我们就在这个项目的基础的上。将会是一个个的vue 文件。

代码上传到github:

https://github.com/QuellanAn/zlflovemmVue

后续加油♡

欢迎大家关注个人公众号 "程序员爱酸奶"

分享各种学习资料,包含java,linux,大数据等。资料包含视频文档以及源码,同时分享本人及投递的优质技术博文。

如果大家喜欢记得关注和分享哟❤

二、Vue 页面渲染过程的更多相关文章

  1. 《Webkit技术内幕》之页面渲染过程

    文章同步到github<Webkit技术内幕>之页面渲染过程 最近拜读了传说中的<Webkit技术内幕>一书,有很大收获,尤其是对页面渲染有了较深的认识.由于功力有限,而且书中 ...

  2. 解决vue数据渲染过程中的闪动问题

    关键代码 主要解决vue双大括号{{}}在数据渲染和加载过程中的闪动问题,而影响客服体验. html代码: <span class="tableTitle selftab" ...

  3. VUE页面渲染问题

    <!DOCTYPE html> <html> <head> <script src="./vue.min.js"></scri ...

  4. html页面渲染过程

    1.解析html文件,创建DOM树 自上而下解析,遇到任何样式(link.style)和脚本(script)都会阻塞 1)css加载不会阻塞html文件的解析,但会阻塞dom的渲染 2)css加载会阻 ...

  5. 从输入url到浏览器显示页面的过程

    总体来说有两个大的方面: 一.网络通信连接部分.二.页面渲染展示部分. 细分详细过程: (网络通信) 1.输入url. 2.DNS解析域名. 3.拿到IP地址后,浏览器向服务器建立tcp连接. 4.浏 ...

  6. web页面加载、解析、渲染过程

    仅做学习参考,侵权删 原文链接:风吹De麦浪   https://www.cnblogs.com/CandyManPing/p/6635008.html 一.浏览器 浏览器的主要功能是将用户选择的we ...

  7. vue中的页面渲染方案

    一.模板渲染 <div id="J_render_app"> <ul v-if="items.length"> <li v-for ...

  8. 从浏览器输入URL到页面渲染的过程

    零.背景 一个web安全工程师在学习web安全和web渗透时候,非常有必要了解整个WEB工作过程. 一.输入URL 这里是最基本的知识:URL是URI的一种实际应用,URI统一资源表示符,URL统一资 ...

  9. Vue页面骨架屏(二)

    实现思路 参考原文中在构建时使用 Vue 预渲染骨架屏一节介绍的思路,我将骨架屏也看成路由组件,在构建时使用 Vue 预渲染功能,将骨架屏组件的渲染结果 HTML 片段插入 HTML 页面模版的挂载点 ...

随机推荐

  1. Kotlin Coroutines不复杂, 我来帮你理一理

    Coroutines 协程 最近在总结Kotlin的一些东西, 发现协程这块确实不容易说清楚. 之前的那篇就写得不好, 所以决定重写. 反复研究了官网文档和各种教程博客, 本篇内容是最基础也最主要的内 ...

  2. Android ConstraintLayout

    对官方例子加上自己的容器即可调整ConstraintLayout实时运行中观察这种布局的变化

  3. web服务,ftp服务以及共享实现

    在开始服务前一定要确保可以ping通外网,在虚拟机联网但ping 不通外网下 确认vim /etc/sysconfig/network-scripts/ifcfg-ens33 (nmcli conne ...

  4. PostGIS 查看表属性(字段、类型、是否为空)

     SELECT                a.attnum,                a.attname AS field,                t.typname AS type ...

  5. Flex调用JavaScript获取文件路径

    Flex的Web中有FileReference的类可以对文件操作,实现上传.下载的功能,但是没有办法获取到文件的路径. 普遍的方法是Flex调用JavaScript的文件浏览功能来获取文件路径. 1. ...

  6. Java NIO 三大组件之 Buffer

    NIO大三组件 之Buffer 一.什么是Buffer Buffer是用于特定原始类型的数据的容器. 它的实质就是一组数组,用于存储不同类型的数据. 二.缓冲区的类型 缓冲区类型除了Boolean值类 ...

  7. 替换节点(replaceChild())

    replaceChild():方法将把一个给定父元素里面的一个子节点替换为另一个子节点: referencre = element.replaceChild(newChild,oldChild); o ...

  8. Go语言冒泡、选择、插入、快速排序实战浅析

    Hello,各位小伙伴大家好,我是小栈君,今天为大家带来的分享是关于go语言中的排序实战浅析. 我们就实际操作关于go的冒泡排序.选择排序.插入排序和快速排序四种方式的理论和实战进行分享,希望能够为大 ...

  9. 获取Zabbix 中资源的使用率

    import pymysql as MySQLdb import time import datetime import xlsxwriter # zabbix数据库信息: zdbhost = 'xx ...

  10. PringData JPA一对多多对一多对多关联

    一.一对多.多对一 1.Country实体类 2.City实体类 3.CountryDao层 4.CityDao层 5.Controller package com.zn.controller; im ...