vue.js基础
MVVM模式
vue.js是一个MVVM的框架,理解MVVM有利于学习vue.js。
MVVM拆分解释为:
- Model:负责数据存储
- View:负责页面展示
- View Model:负责业务逻辑处理(比如Ajax请求等),对数据进行加工后交给视图展示
MVVM要解决的问题是将业务逻辑代码与视图代码进行完全分离,使各自的职责更加清晰,后期代码维护更
加简单;
代码编写步骤:
1、定义html,引入vue.js
2、定义app div,此区域作为vue的接管区域
3、定义vue实例,接管app区域。
4、定义model(数据对象)
5、VM完成在app中展示数据
常用标签
- v-model:
- 在表单控件或者组件上创建双向绑定
- v-model仅能在如下元素中使用:
input
select
textarea
components(Vue中的组件)
- v-text:
v-text可以将一个变量的值渲染到指定的元素中,它可以解决插值表达式闪烁的问题 - v-on
v-on绑定一个按钮的单击事件 - v-bind
1、作用:
v‐bind可以将数据对象绑定在dom的任意属性中。
v‐bind可以给dom对象绑定一个或多个特性,例如动态绑定style和class
2、举例:
<img v‐bind:src=“imageSrc”>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>vue.js测试程序</title>
<script src="vue.min.js"></script>
</head>
<body>
<div id="app">
<!--{{name}}-->
<span v-text="name"></span>
<input type="text" v-model="num1"/>+
<input type="text" v-model="num2">=
<!--{{Number.parseInt(num1)+Number.parseInt(num2)}}-->
<span v-text="result"></span>
<button v-on:click="change">计算</button>
</div>
</body>
<script>
var VM = new Vue({
el:'#app',
data:{
name:'传智播客',
num1:0,
num2:0,
result:0
},
methods:{
change:function () {
this.result = Number.parseInt(this.num1)+Number.parseInt(this.num2);
alert("计算结果为:"+this.result)
}
}
})
</script>
</html>
- v-if和v-for
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF‐8">
<title>Document</title>
<script src="/js/vue/vue.min.js"></script>
</head>
<body>
<div id="app">
<ul>
<!‐‐只显示偶数行‐‐>
<li v‐for="(item,index) in list" :key="index" v‐if="index % 2==0">{{index}}‐{{item}}
</li>
<li v‐for ="(value,key) in user">{{key}}‐{{value}}</li>
<li v‐for="(item,index) in userlist" :key="item.user.uname">
<div v‐if="item.user.uname=='heima'" style="background: chartreuse"><!‐‐名称为heima的
加背景色‐‐>
{{index}}‐{{item.user.uname}}‐{{item.user.age}}
</div>
<div v‐else="">
{{index}}‐{{item.user.uname}}‐{{item.user.age}}
</div>
</li>
</ul>
</div>
</body>
<script>
new Vue({
el:'#app',
data:{
list:[1,2,3,4,4],
user:{uname:'itcast',age:10},
userlist:[
{ user:{uname:'itcast',age:10}},
{ user:{uname:'heima',age:11}}
]
}
});
</script>
</html>