vue基础课程学习之Vue实例(三)

导读:本篇文章讲解 vue基础课程学习之Vue实例(三),希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

1.每个Vue应用都是通过Vue函数创建一个新的Vue实例开始的

var vm = new Vue({

//选项

})

当创建一个Vue实例时,你可以传入一个选项对象,这篇教程主要描述的就是如何使用这些选项来创建你想要的行为。作为参考你也可以在 API 文档中浏览完整的选项列表。

2.一个 Vue 应用由一个通过 new Vue 创建的 Vue 实例,以及可选的嵌套的、可复用的组件树组成。举个例子,一个 todo 应用的组件树可以是这样的:

根实例

└─ TodoList

   ├─ TodoItem

   │  ├─ TodoButtonDelete

   │  └─ TodoButtonEdit

   └─ TodoListFooter

      ├─ TodosButtonClear

      └─ TodoListStatistics

3.数据与方法

    当一个Vue实例被创建时,它将data对象中所有的属性加入到Vue的响应式系统中,当这些属性的值发生改变时,试图将会产生“响应”。即匹配更新为新的值。

 // 我们的数据对象

var data = { a: 1 }

// 该对象被加入到一个 Vue 实例中

var vm = new Vue({

  data: data

})

// 获得这个实例上的 属性

// 返回源数据中对应的字段

vm.a == data.a // => true

// 设置 属性也会影响到原始数据

vm.a = 2

data.a // => 2

// ……反之亦然

data.a = 3

vm.a // => 3

当这些数据改变时,视图会进行重渲染。值得注意的是只有当实例被创建时就已经存在于 data 中的 属性才是响应式的。也就是说如果你添加一个新的 属性,比如:

vm.b = ‘hi’

那么对 b 的改动将不会触发任何视图的更新。如果你知道你会在晚些时候需要一个 属性,但是一开始它为空或不存在,那么你仅需要设置一些初始值。比如:

data: {

  newTodoText: ,

  visitCount: 0,

  hideCompletedTodos: false,

  todos: [],

  error: null

}

这里唯一的例外是使用 Object.freeze(),这会阻止修改现有的 属性即冻结属性的值,也意味着响应系统无法再追踪变化。也就是view数据不会更新。

vue基础课程学习之Vue实例(三)

没有使用Object.freeze()方法冻结属性,点击改变按钮,View试图更新

除了数据 属性,Vue 实例还暴露了一些有用的实例 属性与方法。它们都有前缀 $,以便与用户定义的 属性区分开来。例如:

             <div id=”app”>

                     <p>{{foo}}</p>

                     <button type=”button” v-on:click=”foo = ‘Change BAR'”>改变</button>

              </div>

<script type=”text/javascript”>

              var obj = {

                     foo:”Bar”,

                     }

              // Object.freeze(obj)

              var vm = new Vue({

                     el:”#app”,

                     data:obj

              })

              vm.$watch(‘foo’ ,function(newValue ,oldValue){

                     // 这个回调将在 `vm.foo` 改变后调用

                     console.log(‘foo is newValue = ‘+newValue)

                     console.log(‘foo is oldValue = ‘+oldValue)

              })

       </script>

4.生命周期

    每个Vue实例在被创建时都要经过一系列的初始化过程。例如:需要设置数据监听、编译模板、将实例挂载到DOM并在数据变化时更新DOM等。同时在这个过程也会运行一些叫做生命周期钩子的函数,这给了用户在不同阶段添加自己的代码的机会。

比如:created钩子可以用来在一个实例被创建之后执行的代码:

最后是交流公众号,大家可以关注一下

vue基础课程学习之Vue实例(三)

 

 

 

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/119166.html

(0)
seven_的头像seven_bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!