eval()
返回字符串计算结果
eval('2'+'3')
结果 为 5
用class添加元素样式的几种方式:直接上例子
<style>
.red {
color: red;
}
.thin {
font-weight: 200;
}
.italic {
font-style: italic;
}
.active {
letter-spacing: 0.5em;
}
</style>
<body>
<div id="app">
<!-- 方式一:数组传多个class -->
<h1 :class="['thin','red']">这是H1大标签</h1>
<!-- 方式二:三元表达式 例如下例子中flag以变量方式存在,那么,vue会去data中寻找该变量,并传值-->
<!-- flag 为 true,则执行active属性,为false,则执行italic属性 -->
<h1 :class="['thin','red',flag ? 'active':'italic']">这是H1大标签</h1>
<!-- 方式三:对象 -->
<h1 :class="['thin','red',{'active':flag}]">这是H1大dadadad标签</h1>
<!-- 方式四:直接使用对象 -->
<h1 :class="classContent">这是H1大dadadad标签</h1>
</div>
<script>
var vm = new Vue({
el: '#app',
data: {
flag: true,
classContent: { red: true, active: false, italic: true, }
},
methods: {
},
})
</script>
</body>
结果如下图所示
内联样式style 实现方式
<body>
<div id="app">
<!-- 方式一 -->
<h1 :style="styleContent"> 这是一个H1大标签</h1>
<!-- 方式二 指向一个对象,数组中给定多个样式体 -->
<h1 :style="[styleContent2,styleContent]"> 这是一个H1大标签</h1>
</div>
<script>
var vm = new Vue({
el: '#app',
data: {
styleContent: { color: 'red', 'font-weight': 200 },
styleContent2: {'font-size': '35px'},
},
methods: {
},
});
</script>
</body>
效果如下图
v-for 用法
<body>
<div id="app">
<p v-for="(item,i) in list">索引值:{{i}}-----项内容:{{ item }}</p>
</div>
<script>
var vm = new Vue({
el: '#app',
data: {
list: [1, 2, 3, 4, 5, 6],
},
methods: {},
});
</script>
</body>
对象数组
<body>
<div id="app">
<p v-for="(user,i) in list">索引值:{{i}}-----项内容:{{ user.name }}</p>
</div>
<script>
var vm = new Vue({
el: '#app',
data: {
list: [
{ id: 1, name: 'x1' },
{ id: 2, name: 'x2' },
{ id: 3, name: 'x3' },
{ id: 4, name: 'x4' },
],
},
methods: {
},
});
</script>
</body>
2. 迭代对象中的属性
<body>
<div id="app">
<p v-for="(val,key,i) in user">值:{{val}}-----键{{ key }}----索引:{{i}}</p>
</div>
<script>
var vm = new Vue({
el: '#app',
data: {
user: {
id: 1,
name: '挺哥',
gender: '男',
},
},
methods: {
},
});
</script>
</body>
3. 迭代数字
<body>
<div id="app">
<p v-for="count in 10">这是第{{count}}次循环</p>
<!-- 迭代数字count是从1开始的,不是0 -->
</div>
<script>
var vm = new Vue({
el: '#app',
data: {
},
methods: {
},
});
</script>
</body>
迭代数组的时候,count是从1开始的,并非从0开始
v-for中key属性的用法
<body>
<div id="app">
<div>
<label for="">
Id:
<input type="text" v-model="id">
</label>
<label for="">
Name:
<input type="text" v-model="name">
</label>
<input type="button" value="添加" @click="add">
</div>
<!-- 循环、
添加复选框 -->
<p v-for="item in list" :key="item.id">
<input type="checkbox">
索引:{{item.id}}---> 名称: {{item.name}}
</p>
</div>
<script>
var vm = new Vue({
el: '#app',
data: {
id:'',
name:'',
list: [
{ id: 1, name: 'csdn1' },
{ id: 2, name: '挺哥' },
{ id: 3, name: '博主' },
{ id: 4, name: 'scdn2' },
{ id: 5, name: 'csdn3' },
],
},
methods: {
add() {
// 在末尾push
// this.list.push({id:this.id,name:this.name}),
// 在数组初始push
this.list.unshift({ id: this.id, name: this.name })
},
},
});
</script>
</body>
v-for循环时,key只能使用number获取string
key在使用时必须使用v-bind进行属性绑定指定key的值
v-if 的用法
<body>
<div id="app">
<input type="button" value="touch" @click="touch">
<h3 v-if="flag">用v-if控制</h3>
<h3 v-show="flag">用v-show控制</h3>
</div>
<script>
var vm=new Vue({
el:'#app',
data:{
flag:true,
},
methods:{
touch(){
this.flag=!this.flag
}
},
});
</script>
</body>
button 点击控制元素是否显示
v-if 会每次都重新执行创建元素、删除元素的操作
v-show 不会重新执行DOM的删除和重新创建、而是添加 display:none
也就是说,如果元素不需要再被用户看见,那么就使用v-if;如果元素只是频繁切换显示与不显示,那么用v-show