Vue App.vue

Vue App vue https: www cnblogs com emanlee p 18007207 https: www cnblogs com

Vue  App.vue

https://www.cnblogs.com/emanlee/p/18007207

https://www.cnblogs.com/emanlee/p/18010314

 

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

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

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

 mian.js是整个vue项目的入口文件,他负责配置vue应用的根实例并在浏览器中渲染应用

    引入 Vue 库和其它必要的库和组件。
    创建 Vue 实例,配置路由、vuex、全局组件、指令等等。
    挂载 Vue 实例到 HTML 元素上,渲染应用。

App.vue是应用程序的根组件,它是所有组件的父级组件。App.vue主要负责:

    定义应用程序的基本布局和样式,例如头部导航栏和底部选项卡等。
    集中管理应用程序的状态和事件,例如登录状态和路由跳转等。
    渲染应用程序的子组件,例如在中渲染匹配到的路由组件。
    提供应用程序的全局配置,例如引入全局样式和注册全局组件等。

main.js 和 App.vue 在项目中是相辅相成的,main.js 负责整个项目的启动和全局配置,App.vue 则是整个项目的根组件,负责项目的整体架构和公共部分的管理。

----------------------------------分割线--------开始提问-------------------------------
1.任何一个Vue项目都必须具有main.js与App.vue这两个文件么
能够让 Vue 应用正确地运行起来,确实需要有一个入口文件来进行一些必要的配置,这个入口文件就是 main.js。而 App.vue 则是 Vue 应用的根组件,所有其他组件都将嵌套在 App.vue 组件之内,因此也是必须存在的文件

2.这两个文件改成别的名字吗,会影响效果么
在一般情况下,不建议更改这两个文件的文件名。因为这两个文件名是Vue.js框架的约定俗成的命名规则,用于标识项目的入口文件和根组件,更改文件名可能会影响到Vue.js的默认行为,导致一些不必要的错误。
如果你一定需要更改这两个文件的文件名,你需要同时修改相关的配置文件,例如webpack配置文件和vue.config.js文件。此外,你还需要在修改之后确保项目能够正常运行,避免因为文件名变更而引起的不必要的问题。

链接:https://blog.csdn.net/broeg/article/details/130605532

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

 main.js是项目的入口,webpack会根据main.js将所有js文件嵌入到打包后build文件夹下的index.html里。

build文件夹下,index.html的由来是由public下的index.html而来的,

public下的index.html里有 <div id="app"></div>,而App.vue里也有​<div id="app"></div>,App.vue里的div作用是替换public文件下的div这个占位符,将组件内容渲染到页面上。

App.vue(<div id="app"></div>)——替换——>public(index.html:<div id="app"></div>)​——渲染——>dist(index.html)

main.js——项目入口——>webpack——携带js文件——>dist(index.html)
 

链接:https://blog.csdn.net/qq_44613011/article/details/119424384

 

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

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。
链接:https://blog.csdn.net/wxlly06/article/details/123396637

 

REF

https://www.cnblogs.com/huanxiongs02/p/14828308.html

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

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