检测对象

    受ES5的显示,Vuejs不能检测到对象属性的添加或删除。因为Vuejs在初始化时候将属性转化为getter/setter,所以属性必须在data对象才能让Vuejs转换它,才能让它是响应的,例如:

var data = { a: 1 }
var vm = new Vue({data: data
})
// `vm.a` 和 `data.a` 现在是响应的

vm.b = 2
// `vm.b` 不是响应的

data.b = 2
// `data.b` 不是响应的

    不过,有办法在实例创建之后添加属性并且让它是响应的。对于Vue实例,可以使用$set(key,value)实例方法:

vm.$set('b', 2)
// `vm.b` 和 `data.b` 现在是响应的

    对于普通数据对象,可以使用全局方法Vue.set(object, key, value):

Vue.set(data, 'c', 3)
// `vm.c` 和 `data.c` 现在是响应的

    有时你想向已有对象上添加一些属性,例如使用 Object.assign() 或 _.extend() 添加属性。但是,添加到对象上的新属性不会触发更新。这时可以创建一个新的对象,包含原对象的属性和新的属性:

// 不使用 `Object.assign(this.someObject, { a: 1, b: 2 })`
this.someObject = Object.assign({}, this.someObject, { a: 1, b: 2 })

    相关demo:

<!DOCTYPE html>
<html><head><meta charset="UTF-8"><title></title></head><body><form id="demo"><!-- text --><p><input type="text" v-model="name" v-on:focus="storeName" v-on:blur="checkName">姓名</p><!-- checkbox --><p><input type="checkbox" v-model="checked">{{checked ? "yes" : "no"}}</p><!-- radio buttons --><p><input type="radio" name="picked" value="one" v-model="picked"><input type="radio" name="picked" value="two" v-model="picked">{{picked}}</p><!-- select --><p><select v-model="selected"><option>one</option><option>two</option></select>
              {{selected}}</p><!-- multiple select --><p><select v-model="multiSelect" multiple><option>one</option><option>two</option><option>three</option></select>
              {{multiSelect}}</p><p><pre>data: {{$data | json 2}}</pre></p></form></body><script src="js/vue.js"></script><script>new Vue({el: '#demo',data: {name      : 'hi!',checked  : true,picked   : 'one',selected : 'two',oldName :'',multiSelect: ['one','three']},methods:{storeName : function(){this.oldName=this.name;this.isClick=true;},checkName : function(){var newName=this.name.replace(/(^\s*)|(\s*$)/g,'');console.log('this.name:  '+this.name);console.log('this.oldName:  '+this.oldName);console.log('newName:  '+newName);}}})
</script>
</html>

    该demo的结果:

                                                               

参考资源:https://segmentfault.com/a/1190000005832164#articleHeader0

转载于:https://www.cnblogs.com/mujinxinian/p/5685851.html

vue.js学习笔记(1)相关推荐

  1. Vue.js 学习笔记 十二 Vue发起Ajax请求

    首先需要导入vue-resource.js,可以自己下载引入,也可以通过Nuget下载,它依赖于Vue.js. 全局使用方式: Vue.http.get(url,[options]).then(suc ...

  2. Vue.js 学习笔记 十一 自定义指令

    之前看到过v-bind,v-on等指令,Vue还可以自定义指<div id="divApp"        <div v-focus></div> & ...

  3. Vue.js 学习笔记 十 自定义按键事件

    <div id="divApp"><!--任何键盘动作都会触发--><input type="text" v-on:keyup=& ...

  4. Vue.js 学习笔记 九 v-if和v-show

    <p v-if="flag">v-if</p><p v-show="flag">v-show</p> flag是 ...

  5. Vue.js 学习笔记 八 v-for

    v-for指令,是用来循环的,常用的情况有以下4种 <div id="divApp"><!--迭代数字--><p v-for="n in 5 ...

  6. Vue.js 学习笔记 七 控制样式

    Vue.js可以灵活的控制样式 我们首先随便写2个样式 <style>.divCss {background-color: green;width:400px;height:400px;} ...

  7. Vue.js 学习笔记 六 v-model 双向绑定数据

    之前说的v-bind指令,可以绑定数据,但是是单向的,从model向view绑定,下面介绍v-model,可以双向绑定数据 <div id="divApp"><p ...

  8. Vue.js 学习笔记 五 常用的事件修饰符

    介绍几个常用的事件修饰符 直接上代码 <div id="divApp"><div class="divColor" v-on:click=&q ...

  9. Vue.js 学习笔记 四 用一,二,三的知识做个跑马灯

    做个简单的跑马灯效果 页面定义2个按钮,绑定2个方法. <div id="divApp"><input type="button" value ...

  10. Vue.js 学习笔记三,一些基础指令,v-bind,v-on

    在笔记二的基础上继续写 v-bind指令,为属性绑定数据 <!--v-bind指令可以绑定属性--><div v-html="msg2" v-bind:title ...

最新文章

  1. shell中if [ -e/d/f ..... ]的解释
  2. 请输入有效值,两个最接近的有效值分别为1和2.
  3. reverseinverse
  4. 70+漂亮且极具亲和力的导航菜单设计推荐
  5. 程序员加班很严重吗?看看国外程序员怎么怼老板!
  6. python爬虫抓取51cto博客大牛的文章保存到MySQL数据库
  7. aptana安装svn的方法
  8. 一张图来帮你理解 SOA(转发)
  9. CJSON之完全基于C库函数的使用
  10. oracle ssl jdbc 架构,我与数据库的JDBC连接是否使用SSL?
  11. bzoj3196 二逼平衡树——线段树套平衡树
  12. PHP数组数据结构图,PHP数组与数据结构
  13. Android相机开发实战
  14. 汽车故障诊断技术【11】
  15. 智慧城管数字孪生IOC系统
  16. 【合天网安】利用sqlmap辅助手工注入
  17. python植物大战僵尸辅助_GitHub又放大招,Python版本的植物大战僵尸还能作弊玩!...
  18. vue项目使用eslint和prettier格式化项目
  19. 非科班学弟如何转行斩获 ATM 大厂的 Offer ?
  20. adb devices只显示List of devices attached解决方案(手机已打开调试或无其他问题情况)

热门文章

  1. mac安装完python怎么打开-MAC中怎么安装python
  2. 学python工资高吗-Python工资一般是多少 看完吓你一跳
  3. python1000个常用代码-1000个常用的Python库和示例代码
  4. 用python画皮卡丘代码-利用Python绘制萌萌哒的皮卡丘
  5. python request-urllib.request
  6. 学python先学什么-学Python之前,什么最重要?
  7. python类装饰器详解-Python 类装饰器解析
  8. python中怎么比较两个列表-Python两个列表元素比较
  9. python比c语言好学吗-学C语言好还是Python好?
  10. python怎么安装pandas模块-如何在Python 3中安装pandas包和使用数据结构