vue入门
一.vue简介
- Vue.js是什么?
Vue是一个构建用户界面(UI)的[渐进式]JavaScript框架
官网:vue
Vue作者:尤雨溪/中国无锡
前后端分离 React
- 库和框架的区别
2.1 库(Library),本质上是一些函数的集合。每次调用函数,实现一个特定的功能,接着把控制权交给使用者
代表:jQuery
jQuery这个库的核心:DOM操作,即:封装DOM操作,简化DOM操作
2.2 框架(Framework),是一套完整的解决方案,使用框架的时候,需要把你的代码放到框架合适的地方,框架会在合适的时机调用你的代码
代表:vue
框架规定了自己的编程方式,是一套完整的解决方案
使用框架的时候,由框架控制一切,我们只需要按照规则写代码
框架的侵入性很高(从头到尾)
mvc
3. MVVM的介绍
MVVM,一种更好的UI模式解决方案,MVVM通过数据双向绑定让数据自动地双向同步
MVVM ===> M / V / VM
M:model数据模型
V:view视图
VM:ViewModel 视图模型 虚拟dom
V(修改数据) -> M
M(修改数据) -> V
数据是核心
easyui=jquery+html4
treenodes=
{
id:1
text:后勤管理
children:【
】
}
解析成json对象
将json对象进行遍历
for node in treenodes.children
渲染菜单的功能是操作左侧页面的dom节点
注1:虽然没有完全遵循MVVM模型,Vue的设计无疑受到了它的启发。另外一个js框架“knockout”完全遵循MVVM模型
注2:学习Vue要转化思想:“不要在想着怎么操作DOM,而是想着如何操作数据!!!”
二.vue入门
先安装vue,如果有网络可直接进入cdn找到vue自己所需要的版本导入在线格式
一.边界绑定
让数据显示在浏览器当中
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
//这是2.6.101版本的vue
<script src="https://cdn.bootcdn.net/ajax/libs/vue/2.6.10/vue.js"></script>
</head>
<body>
<!-- 定义边界 -->
<div id='app'>
<h3>{{msg}}</h3>
</div>
</body>
<script type="text/javascript">
// 绑定边界
new Vue({
el:'#app',
//绑定边界的三种方式
data(){
return {msg: 'hello word'}
},
// data:{
// msg:'json对象'
// },
// data:function(){
// return {msg: 'hello word'}
// }
})
</script>
</html>
左侧是显示,右侧是浏览器的查看源码
二.数据双向绑定 (v-model)
写一个输入框绑定三个标签
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<script src="https://cdn.bootcdn.net/ajax/libs/vue/2.6.10/vue.js"></script>
</head>
<body>
<!-- 定义边界 -->
<div id='app'>
//输入框
<input type="text" v-model="msg" />
<h3>{{msg}}</h3>
<h3>{{msg}}</h3>
<h3>{{msg}}</h3>
</div>
</body>
<script type="text/javascript">
// 绑定边界
new Vue({
el:'#app',
data(){
return {msg: 'vue'}
}
})
</script>
</html>
标签中的值随输入框更改
三.事件
点击按钮获取弹框
<button v-on:click="getMsg">获取输入框的值</button>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<script src="https://cdn.bootcdn.net/ajax/libs/vue/2.6.10/vue.js"></script>
</head>
<body>
<!-- 定义边界 -->
<div id='app'>
<input type="text" v-model="msg" />
<button v-on:click="getMsg">获取输入框的值</button>
<h3>{{msg}}</h3>
<h3>{{msg}}</h3>
<h3>{{msg}}</h3>
</div>
</body>
<script type="text/javascript">
// 绑定边界
new Vue({
el:'#app',
data(){
return {msg: 'vue'}
},
//所有的方法都卸载msg里面
methods:{
getMsg(){
alert(this.msg)
}
}
})
</script>
</html>
三.vue的生命周期
生命周期图(主要分为四个阶段)
创建 (beforeCreat\created)
挂载(真假DOM的连接)(beforeMount\mounted)
同步(DOM数据的同步)(beforeUpdate\updated)
销毁(beforedestroyed\destroyed)