vue的实例

创建一个vue实例的写法和创建一个变量一样

var vm = new Vue{{   //我们一般用vm来接收vue的实例,vm是 ViewModel的缩写

}}

然后,我们就可以给vue实例添加属性和方法了

var vm = new Vue{{
  data: {            //属性的声明,不同的属性用逗号隔开
    test1: 123,           //属性值可以是数字,字符串,对象,数组等
    test2: 'abc',
    test3: {
      test1: [3,4,5]
      test2: [{},{},{}]
    }
  }
  methods: {              //方法的声明,不同的方法用逗号隔开
    func1: function () {     //这是vue的标准写法
      //to do sth..
    },
    func2 () {              //这是ES6的写法
      //to do sth...
    }
  }
}}

这里有一个非常重要的地方:
当一个 Vue 实例被创建时,它向 Vue 的"响应式系统"中加入了其 "data" 对象中能找到的所有的属性(已经存在的属性)。
当这些属性的值发生改变时,视图将会产生“响应”,即匹配更新为新的值。
也就是说,能够触发响应式更新的数据,一开始必须是data属性中已经存在的属性,
如果后来给data对象中新增了一些属性,那么这些新增的属性,是不会触发响应式渲染的。
(需要注意的是:这个新增的属性只是不会触发响应式渲染,但是属性值的确是有了,
后续赋值使用也会是最新的数据,只是前台页面显示不会更新)

***********
(
让我很疑惑的是:虽然语法规则说新添加的属性是不触发响应式的更新的。
但是很多时候我测试的时候,的的确确会触发响应式更新,
但这个码代我也没动,过几天再测试的话,
竟然有不触发响应式更新了,
所以,我很纳闷,为什么会发生这种清空,缓存吗?
)
***********

经测试,data下面没有某个属性时(直接关系),使用这个属性(无论是v-if="test",v-show="test"还是{{test}})
都会报error: test not defined

但是如果使用某个属性下没有的属性时(间接关系),使用v-if="test.abc" {{test.abc}} 哪怕test没有abc这个属性,也不会出问题
(这个需要深入了解机制和原理,找到原因)

-----
Object.freeze()
vue官方说使用Object.freeze()方法可以阻止修改现有属性的特性和值,并阻止添加新属性。
但是,我在测试demo中,并没有生效

(以后找到原因后回来解释一下)

-----
$
vue中的 $ 符号

vue官方提供了很多实用性的属性和方法
这些属性和方法都是以$使用的
比如:
this.$data //代表本实例的data属性
this.$set() //官方封装的set方法,用来使新增属性成为响应式触发
总之,这些以 $ 开头的方法或属性,都是vue官方封装好的很实用的方法或属性

vue的实例的更多相关文章

  1. Vue.js实例练习

    最近学习Vue.js感觉跟不上节奏了,Vue.js用起来很方便. 主要实现功能,能添加书的内容和删除.(用的Bootstrap的样式)demo链接 标题用了自定义组件,代码如下: components ...

  2. Vue组件实例间的直接访问

    前面的话 有时候需要父组件访问子组件,子组件访问父组件,或者是子组件访问根组件. 在组件实例中,Vue提供了相应的属性,包括$parent.$children.$refs和$root,这些属性都挂载在 ...

  3. vue.js实例对象+组件树

    vue的实例对象 首先用js的new关键字实例化一个vue el: vue组件或对象装载在页面的位置,可通过id或class或标签名 template: 装载的内容.HTML代码/包含指令或者其他组件 ...

  4. 前端MVC Vue2学习总结(二)——Vue的实例、生命周期与Vue脚手架(vue-cli)

    一.Vue的实例 1.1.创建一个 Vue 的实例 每个 Vue 应用都是通过 Vue 函数创建一个新的 Vue 实例开始的: var vm = new Vue({ // 选项 }) 虽然没有完全遵循 ...

  5. Vue2.5笔记:Vue的实例与生命周期

    理解与认识 Vue 的实例是我们学习 Vue 非常重要的一步,也是非常必须的,因为实例是它的一个起点,也是它的一个入口,只有我们创建一个 Vue 实例之后,我们才行利用它进行一些列的操作. 首先 Vu ...

  6. Vue.js—组件快速入门及Vue路由实例应用

    上次我们学习了Vue.js的基础,并且通过综合的小实例进一步的熟悉了Vue.js的基础应用.今天我们就继续讲讲Vue.js的组件,更加深入的了解Vue,js的使用.首先我们先了解一下什么是Vue.js ...

  7. 【05】Vue 之 实例详解与生命周期

    Vue的实例是Vue框架的入口,其实也就是前端的ViewModel,它包含了页面中的业务逻辑处理.数据模型等,当然它也有自己的一系列的生命周期的事件钩子,辅助我们进行对整个Vue实例生成.编译.挂着. ...

  8. 黑马vue---31-32、vue过滤器实例

    黑马vue---31-32.vue过滤器实例 一.总结 一句话总结: vue内部的东西,无论是过滤器还是组件,都是键值对的方式 1.过滤器的定义语法? Vue.filter('过滤器的名称', fun ...

  9. vue第六单元(vue的实例和组件-vue实例的相关属性和方法-解释vue的原理-创建vue的组件)

    第六单元(vue的实例和组件-vue实例的相关属性和方法-解释vue的原理-创建vue的组件) #课程目标 掌握vue实例的相关属性和方法的含义和使用 了解vue的数据响应原理 熟悉创建组件,了解全局 ...

随机推荐

  1. 应该是很简单的事,关于SQL2005的视图浏览不排序问题

    http://bbs.csdn.net/topics/390667337?page=1

  2. Qt判断鼠标在控件上

    QT判断鼠标是否在某子窗口控件上方 需要注意的是,子窗口获取geometry,是相对于父窗口的相对位置,QCursor::pos()获取的是鼠标绝对位置,要不将父窗口的相对位置进行换算,要不将鼠标的绝 ...

  3. ajax 请求调用问题

    http://localhost/dev/list 和  http://127.0.0.1/dev/list 最近在架构整体常规通用系统的解决方案,遭遇AJAX请求不执行的问题,刚开始以为Spring ...

  4. idea 使用 git打成jar包到 nexus

    1.使用idea生成jar包参考:http://blog.csdn.net/eastgrand/article/details/11945309 2.进入到 自己的工程目录(含有pom.xml的目录) ...

  5. CCF201409-1相邻数对

    试题编号: 201409-1 试题名称: 相邻数对 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 给定n个不同的整数,问这些数中有多少对整数,它们的值正好相差1. 输入格式 ...

  6. mac apache服务器

    //开启apache: sudo apachectl start //重启apache: sudo apachectl restart //关闭apache: sudo apachectl stop ...

  7. SQL Server 2014 聚集列存储

    SQL Server 自2012以来引入了列存储的概念,至今2016对列存储的支持已经是非常友好了.由于我这边线上环境主要是2014,所以本文是以2014为基础的SQL Server 的列存储的介绍. ...

  8. Linux-->Mysql:安装,测试

    环境准备 mysql下载地址:https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.19-linux-glibc2.12-x86_64.tar ...

  9. Mysql学习---全国省市区以及邮编数据库

    更多下载

  10. July 14th 2017 Week 28th Friday

    A life without a dress rehearsal, every day is broadcast live. 人生没有彩排,每天都是现场直播. Every day when I pre ...