写法:
<div id = 'app'>
<h4>{
{
msg}}</h4>
<input type="text" style="width: 100px;" v-model = "msg">
</div>
<!-- v-bind 只能实现数据的单项绑定,从 M自动绑定到V,无法实现数据的双向绑定 -->
<!-- 使用v-model指令,可以实现表单元素和Model中数据的双向数据绑定 -->
<!-- v-model只能用在表单元素 -->
<script>
var vm = new Vue({
el:'#app',
data: {
msg: "十月我能找到工作吗T.T"
}
})
</script>
<div id='app'>
<input type="text" width = '100%' v-model = 'n1'>
<select v-model = 'pt'>
<option value="+">+</option>
<option value="-">-</option>
<option value="*">*</option>
<option value="/">/</option>
</select>
<input type="text" width = '100%' v-model = 'n2'>
<input type="button" value='=' @click = 'calc'>
<input type="text" width='100%' v-model = 'n3'>
</div>
<script>
var vm = new Vue({
el: '#app',
data: {
n1: '0',
n2: '0',
n3: '0',
pt: '+'
},
methods:{
calc() {
switch(this.pt){
case '+': this.n3 = parseFloat(this.n1) + parseFloat(this.n2) ;
break;
case '-': this.n3 = parseFloat(this.n1) - parseFloat(this.n2) ;
break;
case '*': this.n3 = parseFloat(this.n1) * parseFloat(this.n2) ;
break;
case '/': this.n3 = parseFloat(this.n1) / parseFloat(this.n2) ;
break;
}
//var codestar = 'parseFloat(this.n1)' + this.pt + 'parseFloat(this.n2)';
//this.n3 = eval(codestar);
}
},
})
</script>
<style>
.red{
color: red;
}
.thin{
font-weight: 100;
}
.italic{
font-style: italic;
}
</style>
<!-- 数组的方式 -->
<div id='app'>
<p :class="['red','italic']">今天是个好日子</p>
</div>
<script>
var vm = new Vue({
el: '#app',
data: {
}
})
</script>
<!-- 三元运算符 -->
<div id='app'>
<p :class="['red','italic',isactive? 'thin':'']">今天是个好日子</p>
</div>
<script>
var vm = new Vue({
el: '#app',
data: {
isactive: true,
}
})
</script>
<!-- 数组中嵌套对象 -->
<p :class="['red','italic',{'thin':'isactive'}]">今天是个好日子</p>
<!-- 直接使用对象 -->
<p :class="{red:false,thin:true,italic:isactive}">今天是个好日子</p>
<!--对象的属性可带引号也可不带引号。-->
:style
的形式书写样式对象<div :style="{color: 'red', 'font-size': '400px'}" >前端真好玩</div>
data
中,并直接引用到:style
+ 在data
中定义的样式:<div :style="pStyleObj" >前端真好玩</div>
data:{
pStyleObj: {
color:'red','font-size':'40px'}
}
:style
中通过数组的形式,引用多个data
上的样式对象<div :style="[pStyleObj,pStyleObj2]" >前端真好玩</div>
data:{
pStyleObj: {
color:'red','font-size':'40px'},
pStyleObj2: {
color:'red','font-size':'40px'},
}
<ul>
<li v-for="(item,i) in list">索引:{
{
i}}---姓名:{
{
item.name}}---年龄:{
{
item.age}}</li>
</ul>
data: {
list: [{
name:'bobo',age:20},{
name:'ally',age:22}]
}
<div v-for="(val,key,i) in userInfo">{
{
val}}---{
{
key}}---{
{
i}}</div>
data: {
userInfo: {
name:'bobo',
age:16,
sex:male
}
}
<p v-for='i in 10'>这是第{
{
i}}个p标签</p>
//i从1开始
<body>
<div id='app'>
<input type="text" v-model = "id">
<input type="text" v-model = "name">
<input type="button" value="添加" @click = "add">
<p v-for = "item in author" :key = "item.id">
<input type="checkbox">{
{
item.id}}.{
{
item.name}}
</p>
</div>
<script>
var vm = new Vue({
el: '#app',
data: {
id:"",
name:"",
author:[
{
id: 1, name: '毕飞宇'},
{
id: 2, name: '苏童'},
{
id: 3, name: '余华'},
{
id: 4, name: '汪曾祺'}
]
},
methods:{
add(){
this.author.unshift({
id:this.id,name:this.name})
}
}
})
</script>
</body>
在2.2.0+版本里,当在组件中使用v-for时,key现在是必须的
key在使用的时候,必须使用v-bind属性绑定的形式,指定key的值
一般来说,v-if有更高的切换消耗而v-show有更高的初始渲染消耗,因此,如果需要频繁切换v-show较好,如果在运行时条件不大可能改变v-if比较好
<div id = 'app'>
<p v-if='flag'>这是用v-if控制的元素</p>
<p v-show='flag'>这是用v-show控制的元素</p>
</div>
<script>
var vm = new Vue({
el: '#app',
data: {
flag: false
}
</script>
v-if = false
,等于在页面上删除了元素,所以v-if
的特点就是每次都会重新删除或者创建元素v-show= false
,原理其实是给元素加上了display:none
,每次不会重新进行DOM的删除和创建操作