Vue概述
Vue的加载过程
通过CDN引入Vue,有两种方式。第一种全局暴露一个Vue
对象,第二种方式则利用ES6模块语法
引入。
使用全局构建
vue
<script src="https://unpkg.com/vue@3/dist/vue.global.js"></script>
<div id="app">{{ message }}</div>
<script>
const { createApp } = Vue
const app = createApp({
data() {
return {
message: 'Hello Vue!'
}
}
})
const vm = app.mount('#app')
</script>
代码解析:
Vue
相关的js
代码,会选定html
中的一个dom
元素进行渲染。一般把这个元素叫做根组件
,它就是整个页面的内容载体:
vue
<div id="app"></div>
全局构建版本,通过CDN
暴露出一个Vue
构造函数,在下面的script
代码片段中,使用该函数创建了一个Vue实例,并通过它的mount
方法绑定到id
为app
的div
上,从而能够操作div
,控制整个页面的内容。
所以,Vue本质上就是寻找到了一个dom
对象,并对其进行操作,只不过这个对象比较"大",代表了整个页面。
使用ES模块构建
vue
<div id="app">{{ message }}</div>
<script type="module">
import { createApp } from 'https://unpkg.com/vue@3/dist/vue.esm-browser.js'
createApp({
data() {
return {
message: 'Hello Vue!'
}
}
}).mount('#app')
</script>
在比较新的语法中,ES模块也可以用importmap
来别名引入:
vue
<script type="importmap">
{
"imports": {
"vue": "https://unpkg.com/vue@3/dist/vue.esm-browser.js"
}
}
</script>
<div id="app">{{ message }}</div>
<script type="module">
import { createApp } from 'vue'
createApp({
data() {
return {
message: 'Hello Vue!'
}
}
}).mount('#app')
</script>
Vue的基本原理
几个核心概念:
- 单页面应用(SPA)
- 组件化布局
- 响应式数据
- 路由页面跳转
在前后端分离后,前端框架vue
采用单页面布局,依靠组件挂载的方式形成整个页面。
在整个项目打包成由纯html
,css
,js
代码组成的只含有一个入口html
的dist
文件夹后,收到用户的网站请求,把打包后的网站项目传到用户所在的浏览器,浏览器解析运行根html
,并加载出首屏
。
此后用户在该页面的操作全部都由js
代码进行监听,即响应式,通过卸载和挂载页面组件的方式达到多页面的效果,实质上还是同一个页面。因此,Vue
需要借助Vue-router
来实现一个路由,来模拟出类似多页面不同链接之间跳转的效果。