ELRIWebSystem/Learning/vue/3.Vue工作分析.md

59 lines
2.1 KiB
Markdown
Raw Permalink Normal View History

2023-12-18 13:02:23 +08:00
# `Vue`工作原理分析
### 一、`vue`是如何嵌入网页
在每一个`vue`的工程里面,都存在一个`index.html`文件,其内容如下:
```html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1.0">
<title>vue-helloworld</title>
</head>
<body>
<div id="app"></div>
<!-- built files will be auto injected -->
</body>
</html>
```
可以看到默认的`index.html`什么都没有,但是在通过命令`npm run dev`运行后,我们通过网页查看源代码可以看到:
```html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1.0">
<title>vue-helloworld</title>
</head>
<body>
<div id="app"></div>
<!-- built files will be auto injected -->
<script type="text/javascript" src="/app.js"></script></body>
</html>
```
通过上面我们可以看到实际上**`vue`的工程在编译后是会注入`app.js`。所以`vue`实际渲染的任何内容实际上还是通过`javascript`实现的。**
### 二、`app.js`是什么
在上一节中,我们看到了`app.js`但是实际上,我们在工程中却找不到`app.js`。
#### 2.1 `main.js`功能和作用
`main.js` 是程序入口文件,初始化`vue`实例,并引入使用需要的插件和各种公共组件。其功能作用如下:
> - 创建Vue实例在main.js中需要创建一个Vue实例这个实例将作为整个应用的入口。通过传入一个配置对象可以配置Vue实例的各种选项如el、data、methods等。
>
> - 引入其他模块在main.js中可以引入其他的模块如路由、状态管理等。通过引入这些模块可以让应用具备更多的功能和扩展性。
>
> - 注册全局组件在main.js中可以注册全局组件这些组件将在整个应用中都可以使用无需再次导入。
>
> - 挂载根组件在main.js中需要将根组件挂载到HTML页面上的某个元素上。通过设置el选项可以指定挂载的元素将根组件渲染到页面上。
#### 2.2 Vue Router的模式