1 简易计算器
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<script src="lib/vue.js"></script>
</head>
<body>
<div id="app" v-model="opt">
<input type="text" v-model="n1">
<select v-model="opt">
<option value="+">+</option>
<option value="-">-</option>
<option value="*">*</option>
<option value="/">/</option>
</select >
<input type="text" v-model="n2">
<input type="button" value="=" @click="calc">
<input type="text" v-model="result">
</div>
<script>
var vm=new Vue({
el:'#app',
data:{
n1:0,
n2:0,
result:0,
opt:'+'
},
methods:{
calc(){
/*
switch (this.opt) {
case '+':
this.result = parseInt(this.n1) + parseInt(this.n2)
break;
case '-':
this.result = parseInt(this.n1) - parseInt(this.n2)
break;
case '*':
this.result = parseInt(this.n1) * parseInt(this.n2)
break;
case '/':
this.result = parseInt(this.n1) / parseInt(this.n2)
break;
default:
break;
*/
//正式项目不推荐下面的写法
var codeStr='parseInt(this.n1)' + this.opt + 'parseInt(this.n2)'
this.result =eval(codeStr)
}
}
}
)
</script>
</body>
</html>
2. Vue中的样式
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<script src="lib/vue.js"></script>
<style>
.red{
color: red;
}
.thin{
font-weight: 200;
}
.italic{
font-style: italic
}
.active{
letter-spacing: 0.5em;
}
</style>
</head>
<body>
<div id="app">
<!-- <h1 class="red thin">这是一个H1!!!</h1> -->
<!--第一种使用方法,直接传递一个数组进去,必须用单引号来分开才会认为这是一个变量,否则会直接默认为是一个字符串-->
<!-- <h1 :class="['red','italic']">这是一个H1!!!</h1> -->
<!--在数组中使用三元表达式-->
<!-- <h1 :class="['red','italic',flag?'active':'']">这是一个H1!!!</h1> -->
<!--用对象的形式来代替三元表达式-->
<!-- <h1 :class="['red','italic',{'active':flag}]">这是一个H1!!!</h1> -->
<!-- 直接使用对象,或者也可以直接把classobj中的内容 直接放到class中-->
<h1 :class="calssobj">这是一个H1!!!</h1>
</div>
<script>
var vm=new Vue({
el:"#app",
data:{
flag:true,
calssobj:{red:true,thin:true,italic:false,active:false}
},
methods:{
}
})
</script>
</body>
</html>
3. Vue的Class样式的使用
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<script src="lib/vue.js"></script>
<style>
.red{
color: red;
}
.thin{
font-weight: 200;
}
.italic{
font-style: italic
}
.active{
letter-spacing: 0.5em;
}
</style>
</head>
<body>
<div id="app">
<!-- <h1 class="red thin">这是一个H1!!!</h1> -->
<!--第一种使用方法,直接传递一个数组进去,必须用单引号来分开才会认为这是一个变量,否则会直接默认为是一个字符串-->
<!-- <h1 :class="['red','italic']">这是一个H1!!!</h1> -->
<!--在数组中使用三元表达式-->
<!-- <h1 :class="['red','italic',flag?'active':'']">这是一个H1!!!</h1> -->
<!--用对象的形式来代替三元表达式-->
<!-- <h1 :class="['red','italic',{'active':flag}]">这是一个H1!!!</h1> -->
<!-- 直接使用对象,或者也可以直接把classobj中的内容 直接放到class中-->
<h1 :class="calssobj">这是一个H1!!!</h1>
</div>
<script>
var vm=new Vue({
el:"#app",
data:{
flag:true,
calssobj:{red:true,thin:true,italic:false,active:false}
},
methods:{
}
})
</script>
</body>
</html>
4. Vue的v-for的使用
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<script src="lib/vue.js"></script>
</head>
<body>
<div id="app">
<!-- <p>{{list[0]}}</p>
<p>{{list[1]}}</p>
<p>{{list[2]}}</p>
<p>{{list[3]}}</p>
<p>{{list[4]}}</p>
<p>{{list[5]}}</p> -->
<!-- <p v-for="(item,i) in list">索引:{{i}}--{{item}}</p> -->
<p v-for="(user,i) in LT">ID:{{user.ID}} --- name:{{user.name}} --- index:{{i}}</p>
</div>
<script>
var vm=new Vue({
el:'#app',
data:{
list:[1,2,3,4,5,6,],
LT:[
{ID:1,name:'11'},
{ID:2,name:'22'},
{ID:3,name:'33'},
{ID:4,name:'44'}
]
},
methods:{}
})
</script>
</body>
</html>
5. Vue v-for对象以及key的使用
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<script src="lib/vue.js"></script>
</head>
<body>
<div id="app">
<!-- 遍历对象身上的键值对时 除了val,key还有一个索引i -->
<!-- <p v-for="(val,key,i) in user"> 值:{{val}} --- 键:{{key}} 索引:{{i}}</p> -->
<!-- <p v-for="count in 10">这是第 {{count}} 次循环</p> //循环数字,起始是1 -->
<!-- for循环的key的使用 -->
<div>
<label >Id:
<input type="text" v-model="id">
</label>
<label>Name:
<input type="text" v-model="name">
</label>
<input type="button" value="添加" @click="add">
</div>
<!-- 1 在使用key的时候一定要使用v-bind属性绑定形式,制定key的值
2 在组建中,使用v-for循环的时候,或者在一些特殊情况中,如果v-for有问题必须在使用v-for的同时,
制定唯一的字符串/数字类型:key值 -->
<p v-for="item in list" :key="item"> <!-- 可以保证数据的唯一性 -->
<input type="checkbox">{{item.id}} --- {{item.name}}
</p>
</div>
<script>
var vm=new Vue({
el:'#app',
data:{
list:[
{id:1,name:'唐'},
{id:2,name:'宋'},
{id:3,name:'元'},
{id:4,name:'明'},
{id:5,name:'清'}
]
},
methods:{
add(){
this.list.unshift({id:this.id,name:this.name});
}
}
})
</script>
</body>
</html>
6. Vue的v-if和v-show的使用
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<script src="lib/vue.js"></script>
</head>
<body>
<div id="app">
<input type="button" value="点击" @click="flag=!flag">
<!--
v-if的特点:每次都会重新删除或创建元素 有较高的切换性能消耗
v-show的特点:每次不会进行DOM的删除或创建操作,只是切换了元素的display:nene的属性 有较高的初始或渲染消耗
如果元素要频繁的切换最好不要使用v-if
如果是永久性的不显示,则推荐v-if
-->
<P v-if="flag">Hello</P>
<p v-show="flag">Word</p>
</div>
<script>
//2.创建一个Vue实例
//当我们带入包之后,在浏览器内存中就多了一个Vue构造函数
var vm =new Vue(
{
el:'#app',
data :{
flag:true
}
}
)
</script>
</body>
</html>