一、什么是vue
Vue (读音 /vjuː/,类似于 view) 是一套用于构建用户界面的渐进式框架
vue2官网:Vue.js
什么是构建用户界面
基于数据渲染出用户可以看到的界面
什么是渐进式
渐进式就是循序渐进,不一定非得把vue中得所有API都学完才能开发vue,可以学一点开发一点
vue的两种开发方式:
1.vue核心包开发
场景:局部模块改造
2.vue核心包&vue插件&工程化【重点】
场景:整站开发
二、什么是框架
框架:就是一套完整的解决方案
库:类似工具箱,是一堆方法的集合,比如axios,lodash,echarts等
框架:是一套完整的解决方案,实现了大部分功能,我们只需要按照一定的规则去编码即可
框架的特点: 有一套必须让开发者遵守的规则或者约束 学习框架就是学习这些规则
传统开发模式下vue基本模板
- 使用工具:Vscode
新建html文件——> ! + Enter 搭建框架
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
</body>
</html>
1. 引入vue.js
在 head 标签中加入下列代码,引入vue.js(以vue2为例)。
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
2. 建立容器
在 body 标签中加入以下代码,之后的代码必须写在该标签下。
<div id="app"></div>
3. 创建vue实例
在 body 标签下新建一个 script 标签(里面写 js 代码)。
var vm = new Vue({
el: '#app', // 提供一个在页面上已存在的DOM元素作为 vue 实例的挂载目标
data: {
// 实例的数据对象
msg: 'success',
num: 1,
string: 'abc',
arr: [1, 2, 3, 4, 5]
}
})
完整代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
</head>
<body>
<div id="app"></div>
</body>
<script>
var vm = new Vue({
el: '#app', // 提供一个在页面上已存在的DOM元素作为 vue 实例的挂载目标
data: { // 实例的数据对象
msg: 'success',
num: 1,
string: 'abc',
arr: [1, 2, 3, 4, 5]
}
})
console.log(vm)
console.log(vm.$data)
console.log(vm.$options)
</script>
</html>
关于 vue 中 $符号的使用
$ 符号是内置的实例方法属性,以便与用户定义的属性区分开来。避免我们自己声明或者添加自定义属性导致覆盖。
$options简单了解一下,
vue
实例属性 $options 是一个对象,可以调用 vue 的各个组件下的方法和数据即
new Vue({})
大括号内的东西,统称为 options
-----------------------------------------------------------分割线------------------------------------------------------------
插值表达式
目的:在DOM标签中,直接插入内容
又叫: 声明式渲染/文本插值
语法:{{表达式}}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
</head>
<body>
<div id="app">
<!-- 插值表达式不能写循环语句,不能写条件语句 -->
<p>{{num}}</p>
<p>{{num + 1}}</p>
<p>{{24}}</p>
<p>{{flag}}</p>
<p>{{falg?'成功':'失败'}}</p>
<p>{{msg}}</p>
<p>{{msg + 'vue牛牛牛'}}</p>
<p>{{'hello world!'}}</p>
<p>{{arr}}</p>
<p>{{arr.reverse()}}</p>
<p>{{obj}}</p>
<p>{{obj.name}}</p>
</div>
</body>
<script>
var vm = new Vue({
el: '#app',
data: {
msg: 'success',
num: 1,
arr: [1, 2, 3, 4, 5],
falg: false,
obj: {
name: 'abc',
age: 22,
}
}
})
console.log(vm)
console.log(vm.$data)
console.log(vm.$options)
</script>
</html>
总结:DOM中插值表达式赋值,vue变量必须在data中声明
-----------------------------------------------------------分割线------------------------------------------------------------
vue基础-MVVM设计模式
用数据驱动试图改变,操作DOM的事,vue源码干了
设计模式:一套被反复使用,多数人知晓的,经过分类编目的,代码设计经验的总结。
MVVM:一种软件架构模式,决定了写代码的思想和层次
M:model数据模型(data中定义)
V:view视图(html页面)
VM:ViewModel 视图模型(vue.js源码)
MVVM 通过数据双向绑定让数据自动双向同步,不再需要操作DOM
V(修改视图)——> M(数据自动同步)
M(修改数据)——> V(视图自动同步)
总结:vue源码采用MVVM设计模式思想,大大减少了DOM操作,提高开发效率