1、单选框
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<div id="app">
<input type="checkbox" v-model="disabled"/>
<button type="button" :disabled="!disabled">下一步</button>
</div>
<script type="text/javascript" src="js/vue.min.js"></script>
<script type="text/javascript">
var vm = new Vue({
el:'#app',
data:{
disabled:false,
}
})
</script>
</body>
</html>
2、下拉框:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<div id="app">
<form action="下拉框.html" method="">
<select name="tid">
<option value="">
请选择商品
</option>
<option value ="" v-for="t in list" :value="t.tid" v-text="t.tname"></option>
</select>
<button type="submit">提交</button>
</form>
</div>
<script type="text/javascript" src="js/vue.min.js"></script>
<script type="text/javascript">
new Vue({
el:'#app',
data:{
list:[
{tid:1,tname:'生活用品'},
{tid:2,tname:'电子产品'},
{tid:3,tname:'果蔬产品'}
]
}
})
</script>
</body>
</html>
3、超链接
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<div id="app">
<ul>
<li v-for="(n,nid) in list">
{{n.nid}}<a v-bind:href="n.ref">{{n.name}}</a>
</li>
</ul>
</div>
<script type="text/javascript" src="js/vue.min.js"></script>
<script type="text/javascript">
var vm = new Vue({
el:'#app',
data:{
list:[
{nid:1,name:'十一放假了',ref:'http://www.baidu.com'},
{nid:2,name:'放假7天',ref:'http://www.qq.com'},
]
}
})
</script>
</body>
</html>
4、计算属性
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<div id="app">
商品名<input type="text" v-model="sname" placeholder="请输入商品名" />+
商品价格<input type="text" v-model="sprice" placeholder="请输入价格" />=
数量<input type="text" v-model="snum" placeholder="请输入数量" />
<button type="submit" v-on:click="list.push({sname,sprice,snum})">添加</button>
<table>
<tr>
<th>商品名</th>
<th>商品价格</th>
<th>数量</th>
</tr>
<tr v-for="v in list">
<td>{{v.sname}}</td>
<td>{{v.sprice}}</td>
<td>{{v.snum}}</td>
</tr>
</table>
</div>
<script type="text/javascript" src="js/vue.min.js"></script>
<script type="text/javascript">
var vm = new Vue({
el:'#app',
data:{
sname:'',
sprice:0,
snum:0,
list: [],
},
computed:{
res:function(){
return parseInt(this.n1) + parseInt(this.n2)
}
},
methods:{
}
})
</script>
</body>
</html>
5、图片轮播
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<div id="app">
<button type="button" v-on:click="i = i == 1?4:i-1"><<<</button>
<button type="button" v-on:click="i = i == 4?1:i+1">>>></button><br>
<img v-bind:src="'img/j'+i+'.png'" >
</div>
<script type="text/javascript" src="js/vue.min.js"></script>
<script type="text/javascript">
var vm = new Vue({
el:'#app',
data:{
i:1,
}
})
/* setInterval(function(){
console.log(vm)
vm.i++;
vm.i%=5;
},1000) */
</script>
</body>
</html>
6、开关灯--show
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<div id="app">
<!-- <button type="button" v-on:click="show=!show">{{show?'关灯':'开灯'}}</button><br>
<img v-bind:src="show?'img/k.jpg':'img/g.jpg'" > -->
<button type="button" v-on:click="i= i==1?0:i+1, show=!show">{{show?'开灯':'关灯'}} </button><br />
<!-- <img v-bind:src="show ==show?'img/k.jpg':'img/g.jpg'" /> -->
<div >
<img v-bind:src="'img/'+i+'.jpg'" />
<!-- <img v-bind:src="show?'img/k.jpg':'img/g.jpg'" /> -->
</div>
</div>
<script type="text/javascript" src="js/vue.min.js"></script>
<script type="text/javascript">
var vm = new Vue({
el:'#app',
data:{
i:0,
show:true,
}
})
</script>
</body>
</html>
7、购物车
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<div id="app">
<button type="button" @click="add()">添加</button>
<p v-for="(s,i) in list">
名称:<input type="text" v-model="s.sname" />
价格:<input type="number" v-model="s.sprice" />
数量:<input type="number" v-model="s.snum" />
小计:<input type="number" v-model="s.sprice*s.snum" readonly="readonly"/>
<button type="button" @click="del(i)">删除</button>
</p>
总计: {{total}}¥ 共: {{count}}件
</div>
<script type="text/javascript" src="js/vue.min.js"></script>
<script type="text/javascript">
var vm = new Vue({
el:'#app',
data:{
list:[],
},
created() {
},
computed:{
total() {
var sum = 0;
this.list.forEach(function(v, i) {
sum += v.sprice * v.snum
})
return sum;
},
count() {
var sum = 0;
this.list.forEach(function(v,i) {
sum += v.snum * 1;
})
return sum;
}
},
methods:{
add(){
this.list.push({
sname:'',
sprice: 0,
snum: 1
})
},
del(i){
this.list.splice(i,1)
}
}
})
</script>
</body>
</html>
8、观察者(全选 单选)--监听机制
文本框数据改变(复选框、下拉框)
监听数据的变化,从而执行的功能
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<div id="app">
<input v-model="sprice" />
<hr >
<!-- 复选框全选 绑定单个值真和假 -->
<!-- 全选把数组内容交给爱好 -->
<input type="checkbox" v-model="qx" />全选
<p v-for="h in list">
<!-- 绑定数组 数据绑定-->
<input type="checkbox" v-model="hobby" :value="h" />{{h}}
</p>
{{hobby}}
</div>
</body>
<script src="js/vue.min.js" type="text/javascript" charset="utf-8"></script>
<script type="text/javascript">
var vm = new Vue({
el: "#app",
data: {
sprice: 0,
list: [
'游戏',
'音乐',
'书籍',
],
//默认不选
qx: false,
hobby: [],
},
watch: {
//观察谁写谁
sprice(newval,oldval){
//观察者监听模式
console.log(newval,oldval)
},
qx(newval){
//全选
if(newval){
this.hobby=this.list
}else{ //全不选
this.hobby=[]
}
}
}
})
</script>
</html>
9、鼠标事件---选中高亮显示
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
<style type="text/css">
/* 激活 高亮显示 */
.active{
color: red;
background-color: cornsilk;
}
</style>
</head>
<body>
<div id="app">
<ul>
<!-- 静态效果 -->
<!-- <li class="active">第一项</li> -->
<!-- 动态效果 has-json格式 -->
<!-- 鼠标悬浮事件i改变,高亮显示的行就改变 -->
<li :class="{active: i==0}" @mousemove="i=0" @mouseout="i=100">第一项</li>
<li :class="{active: i==1}" @mousemove="i=1" @mouseout="i=100">第二项</li>
<li :class="{active: i==2}" @mousemove="i=2" @mouseout="i=100">第三项</li>
</ul>
</div>
<script src="js/vue.min.js" type="text/javascript" charset="utf-8"></script>
<script type="text/javascript">
var vm = new Vue({
el: '#app',
data: {
i:0
},
})
</script>
</body>
</html>