目录
创建Vue对象
1. 实例选项的使用
var my = new Vue({
el: '#app',
template: '<div>{{ fruit }}</div>',
data: {
fruit: 'apple'
}
})
这个options中可以包含哪些选项呢? 详细解析: https://cn.vuejs.org/v2/api/#%E9%80%89%E9%A1%B9-%E6%95%B0%E6%8D%AE
目前掌握这些选项:
- el: 类型:string | HTMLElement
作用:决定之后Vue实例会管理哪一个DOM。
- data: 类型:Object | Function (组件当中data必须是一个函数)
作用:Vue实例对应的数据对象。
- methods: 类型:{ [key: string]: Function }
作用:定义属于Vue的一些方法,可以在其他地方调用,也可以在指令中使用。
2. components的使用
import Vue from 'vue'
import App from 'App.vue'
new Vue({
el: 'body',
components: { App }
})
实例化一个根组件 Vue , 通过el挂载到body上。
从App.vue中引入App子组件,App是Vue的子组件,Vue又挂载到body上,所以App就被挂载到了body上。
3. data的正确打开方式
data使用时要避免引用赋值,如这样:
//不推荐的方法
data : {
d : 5,
b : 8,
fruit: 'apple'
}
如果一个组件在项目中被多次引用,在一个组件中改变data的值,其余组件也会改变,所以要用function返回数据就可避免这种情况。如这样:
//推荐的方法
data () {
return {
d : 5,
b : 8,
fruit: 'apple'
}
}
v-for(响应式)
1.迭代普通数组
- 在data中定义普通数组
const app = new Vue({
el: '#app',
data: {
movies: ['海贼王', '火影忍者', '妖精的尾巴', '快乐星球']
}
})
- 在html中使用 v-for 指令渲染
<div id="app">
<ul>
<li v-for="item in movies">{{item}}</li>
</ul>
</div>
2.迭代对象数组
- 在data中定义对象数组
const app = new Vue({
el: '#app',
data: {
obj: [
{ id: 1, name: '海贼王' },
{ id: 2, name: '火影忍者' },
{ id: 3, name: '妖精的尾巴' },
{ id: 4, name: '快乐星球' }]
}
})
- 在html中使用 v-for 指令渲染
<div id="app">
<ul>
<li v-for="(item,i) in obj">id={{item.id}},,,,,,,,name={{item.name}},,,,,,,,i={{i}} </li>
</ul>
</div>
3.迭代对象
- 在data中定义对象
const app = new Vue({
el: '#app',
data: {
user: {
id: 1,
name: '托尼.贾',
gender: '男'
}
}
})
- 在html中使用 v-for 指令渲染
<div id="app">
<ul>
<li v-for="(val,key) in user">键是--{{key}},,,,,,,,值是--{{val}}</li>
</ul>
</div>
4.迭代数字
<!-- 注意:如果使用v-for迭代数字的话,前面 count 的值从 1 开始-->
<p v-for="count in 10">这是第{{count}}次循环</p>
完整代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<div id="app">
<ul>
<li v-for="item in movies">{{item}}</li>
</ul>
<ul>
<li v-for="(item,i) in obj">id={{item.id}},,,,,,,,name={{item.name}},,,,,,,,i={{i}} </li>
</ul>
<ul>
<li v-for="(val,key) in user">键是--{{key}},,,,,,,,值是--{{val}}</li>
</ul>
<p v-for="count in 10">这是第{{count}}次循环</p>
</div>
<script src="../js/vue.js"></script>
<script>
const app = new Vue({
el: '#app',
data: {
message: 'hello',
movies: ['海贼王', '火影忍者', '妖精的尾巴', '快乐星球'],
obj: [
{ id: 1, name: '海贼王' },
{ id: 2, name: '火影忍者' },
{ id: 3, name: '妖精的尾巴' },
{ id: 4, name: '快乐星球' }],
user: {
id: 1,
name: '托尼.贾',
gender: '男'
}
}
})
</script>
</body>
</html>
参考链接:
https://www.jianshu.com/p/741fc1001db2