创建Vue对象和v-for

目录

创建Vue对象

1. 实例选项的使用

2. components的使用

3. data的正确打开方式

v-for(响应式)

1.迭代普通数组

2.迭代对象数组

3.迭代对象

4.迭代数字


 

创建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

https://blog.csdn.net/xukongjing1/article/details/81584890

https://www.bilibili.com/video/BV1H7411j7Mc

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值