Vue  App.vue

Vue 的 App.vue 文件是整个Vue项目中最核心的文件之一,它是所有组件的基础组件,也是整个Vue应用的入口文件。

我们可以在  App.vue 中定义一些全局的样式、组件、路由和状态管理等,从而方便其他组件的调用。

App.vue 内部包含三个主要部分:模板、逻辑代码和样式。其中,模板部分用于定义页面的结构和布局,逻辑代码用于定义组件的行为和交互,样式用于定义组件的外观和风格。

<template>
<div class="app">
<router-view />
</div>
</template>

<script>
import router from './router';
import store from './store';
export default {
name: 'App',
router,
store
};
</script>


<style>
.app {
margin: 0 auto;
max-width: 800px;
}
</style>

在上面的代码中,我们可以看到模板部分定义了一个名为“app”的div元素,其中包含了一个路由视图组件,将渲染各个路由对应的组件。

逻辑代码部分引入了router和store文件,并导出了一个名为“App”的Vue组件对象,该组件对象包含了router和store实例,可以在子组件中使用。

而样式部分则定义了app元素的基本样式,包括水平居中对齐和最大宽度限制,从而使整个Vue应用在视觉上更加美观和统一。

总之,App.vue文件在Vue项目开发中扮演着非常重要的角色,是整个应用程序的核心枢纽,我们可以通过它定义一些全局的组件和样式,方便其他组件调用,从而达到提升开发效率和优化用户体验的目的。

REF

https://www.yzktw.com.cn/post/1201207.html

=====================================

 

=====================================

 

Vue 在调用 render 方法时,会传入一个 createElement 函数作为参数,也就是这里的 h 的实参是 createElement 函数,这个函数的作用就是生成一个 VNode节点,render 函数得到这个 VNode 节点之后,调用了 mount 方法,渲染成真实 DOM 节点,并挂载到(通常是div app)节点上。

createElement函数是用来生成HTML DOM元素的,也就是generate HTML structures,也就是Hyperscript,这样作者才把createElement简写成h。h是vue.js里面的createElement函数,这个函数的作用就是生成一个VNode节点,render函数得到这个VNode节点之后,返回给vue.js的mount函数,渲染成真实DOM节点,并挂载到根节点上。

=====================================

ES6(ECMAScript 2015)基本语法(Vue)

JavaScript 函数定义

 

render: h => h(App)

render: function (createElement) {
    return createElement(App);
}

继续缩写:

render (createElement) {
    return createElement(App);
}

继续缩写:

render (h) {
    return h(App);
}

箭头函数:

h => h(App);

其中 根据 Vue.js 作者 Even You 的回复,h 的含义如下:
It comes from the term “hyperscript”, which is commonly used in many virtual-dom implementations. “Hyperscript” itself stands for “script that generates HTML structures” because HTML is the acronym for “hyper-text markup language”.
它来自单词 hyperscript,这个单词通常用在 virtual-dom 的实现中。Hyperscript 本身是指生成HTML 结构的 script 脚本,因为 HTML 是 hyper-text markup language 的缩写(超文本标记语言)
个人理解:createElement 函数是用来生成 HTML DOM 元素的,也就是上文中的 generate HTML structures,也就是 Hyperscript,这样作者才把 createElement 简写成 h。

=====================================

render函数是渲染一个视图,然后提供给el挂载,如果没有render那页面什么都不会出来

相当于就是将App.vue页面渲染出来,render 函数得到这个 VNode 节点之后,返回给 Vue.js 的 mount 函数,渲染成真实 DOM 节点,并挂载到根节点上,

根结点在index.html下面有一个#app的div上

最后的效果就是将:App.vue页面渲染出来,插入到index.html里面一个叫做

 

vue.2.0的渲染过程:

1.首先需要了解这是 es 6 的语法,表示 Vue 实例选项对象的 render 方法作为一个函数,接受传入的参数 h 函数,返回 h(App) 的函数调用结果。

2.其次,Vue 在创建 Vue 实例时,通过调用 render 方法来渲染实例的 DOM 树。

3.最后,Vue 在调用 render 方法时,会传入一个 createElement 函数作为参数,也就是这里的 h 的实参是 createElement 函数,然后 createElement 会以 APP 为参数进行调用

createElement 到底会返回什么呢?其实不是一个实际的 DOM 元素。createElement更准确的名字可能是 createNodeDescription,因为它所包含的信息会告诉 Vue 页面上需要渲染什么样的节点,及其子节点。我们把这样的节点描述为“虚拟节点 (Virtual Node)”,也常简写它为“VNode”。“虚拟 DOM”是我们对由 Vue 组件树建立起来的整个 VNode 树的称呼。

总体来说,揣测认为,Vue 在调用 render 方法时,会传入一个 createElement 函数作为参数,也就是这里的 h 的实参是 createElement 函数,这个函数的作用就是生成一个 VNode节点,render 函数得到这个 VNode 节点之后,调用了 mount 方法,渲染成真实 DOM 节点,并挂载到(通常是div app)??节点上。

其实vue有两种渲染方法,一种是通过模板<template>
一种是render function

链接:https://www.jianshu.com/p/82b24431bb4c