vue学习总结(一)vue实例

      Vue是一套用于构建用户界面的渐进式框架。与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用。Vue 的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合。另一方面,当与现代化的工具链以及各种支持类库结合使用时,Vue 也完全能够为复杂的单页应用提供驱动

    Vue.js 的核心是一个允许采用简洁的模板语法来声明式地将数据渲染进 DOM 的系统,Vue.js 的核心是一个允许采用简洁的模板语法来声明式地将数据渲染进 DOM 的系统,数据和 DOM 建立关联,所有东西都是响应式的。一个 Vue 应用由一个通过 new Vue 创建的根 Vue 实例,以及可选的嵌套的、可复用的组件树组成.

 1、每个 Vue 应用都是通过用 Vue 函数创建一个新的 Vue 实例开始的,下面创建一个vue实例

var data = { a: 1 }
var vm = new Vue({
    
//放入选项data: data
})
创建时,它向 Vue 的响应式系统中加入了其 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() ,这会阻止修改现有的属性,也意味着响应系统无法再_追踪_变化。
var obj = {
    
  foo: 'bar'
}

Object.freeze(obj)

new Vue({
    
  el: '#app',
  data: obj
})
模板更改 obj,data不会更新

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

var data = { a: 1 }
var vm = new Vue({
        
  el: '#example',
  data: data
})

vm.$data === data // => true
vm.$el === document.getElementById('example') // => true

你可能感兴趣的:(vue,vue实例)