一、 vue实例的属性和方法

  1、属性

    1、常用属性

       vm.$el      #获取的是个dom对象可以点下面的属性

       vm.$data  #获取的是个。。。。

       vm.$options

       vm.$refs

    2、示例

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>vue实例的属性和方法</title><script src="js/vue.js"></script>
</head>
<body><div id="itany">{{msg}}<h2 ref="hello">你好</h2><p ref="world">世界</p><hr><h1 ref="title">标题:{{name}}</h1></div><script>/*var vm=new Vue({// el:'#itany',data:{msg:'welcome to itany'},name:'tom',age:24,show:function(){console.log('show');}});*//*** 属性*///vm.属性名 获取data中的属性,简单写法// console.log(vm.msg);//vm.$el 获取vue实例关联的元素// console.log(vm.$el); //DOM对象// vm.$el.style.color='red';//vm.$data //获取数据对象data// console.log(vm.$data);// console.log(vm.$data.msg);//获取数据对象data下的属性//vm.$options //获取自定义属性// console.log(vm.$options.name);// console.log(vm.$options.age);// vm.$options.show();//vm.$refs 获取所有添加ref属性的元素// console.log(vm.$refs);// console.log(vm.$refs.hello); //DOM对象// vm.$refs.hello.style.color='blue';</script></body>
</html>

View Code

  2、方法

    1、与数据相关的方法

      vm.$set(object,key,value)    #为属性添加(修改)一个属性并且设置键和值,object为对象,key为键,value为值,由于通过绑定方法添加属性不会被实例对象所监视,所以通过$set方法就可以被监视。

      vm.$delete(object,key)             #删除实例属性

      vm.$watch(data,callback[,options])#用来观察实例中属性值的变化

    2、示例

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>添加和删除属性:$set、$delete</title><script src="js/vue.js"></script>
</head>
<body><div id="itany"><button @click="doUpdate">修改属性</button><button @click="doAdd">添加属性</button><button @click="doDelete">删除属性</button><hr>    <h2>{{user.name}}</h2><h2>{{user.age}}</h2></div><script>var vm=new Vue({el:'#itany',data:{user:{id:1001,name:'tom'}},methods:{doUpdate(){this.user.name='汤姆'},doAdd(){// this.user.age=25; //通过普通方式为对象添加属性时vue无法实时监视到// this.$set(this.user,'age',18); //通过vue实例的$set方法为对象添加属性,可以实时监视,局部方法。this指代的是实例对象即vm// Vue.set(this.user,'age',22);//全局方法,也可写在实例外面,局部方法和全局方法用法相同但是就只缺一个$之差。vue指代的是vue对象if(this.user.age){this.user.age++;}else{Vue.set(this.user,'age',1);}// console.log(this.user);
                },doDelete(){if(this.user.age){// delete this.user.age; //无效
                        Vue.delete(vm.user,'age');//删除对象属性,vm=this
                        Vue.delete(this.user,'age');//删除对象属性
                    }}}});</script></body>
</html>

添加和删除对象属性

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>监视数据的变化:$watch</title><script src="js/vue.js"></script>
</head>
<body><div id="itany"><input type="text" v-model="name"><h3>{{name}}</h3><hr><input type="text" v-model="age"><h3>{{age}}</h3><hr><input type="text" v-model="user.name"><h3>{{user.name}}</h3></div><script>var vm=new Vue({el:'#itany',data:{name:'tom',age:23,user:{id:1001,name:'alice'}},watch:{ //方式2:使用vue实例提供的watch选项
                age:(newValue,oldValue) => {console.log('age被修改啦,原值:'+oldValue+',新值:'+newValue);},user:{handler:(newValue,oldValue) => {console.log('user被修改啦,原值:'+oldValue.name+',新值:'+newValue.name);},deep:true //深度监视,当对象中的属性发生变化时也会监视
                }}});//方式1:使用vue实例提供的$watch()方法
        vm.$watch('name',function(newValue,oldValue){console.log('name被修改啦,原值:'+oldValue+',新值:'+newValue);});vm.$watch('name',function(newValue,oldValue){console.log('name被修改啦,原值:'+oldValue+',新值:'+newValue);}.true); //如果监视的是个对象,就要启用深度监视,但是监视后得到的原值和新值都是一样</script></body>
</html>

监视实例属性

    3、与生命周期相关的方法

         vm.$mount()     #手动挂载实例

       vm.$destroy()  #注销实例

       vm.$nextTick(callback)   #dom更新完后执行回调函数

    4、示例

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>vue实例的属性和方法</title><script src="js/vue.js"></script>
</head>
<body><div id="itany">{{msg}}<h2 ref="hello">你好</h2><p ref="world">世界</p><hr><h1 ref="title">标题:{{name}}</h1></div><script>/*var vm=new Vue({// el:'#itany',data:{msg:'welcome to itany'},name:'tom',age:24,show:function(){console.log('show');}});*//*** 方法*///vm.$mount()  手动挂载vue实例// vm.$mount('#itany');var vm=new Vue({data:{msg:'欢迎来到南京网博',name:'tom'}}).$mount('#itany');//vm.$destroy() 销毁实例但是属性还在。// vm.$destroy();// vm.$nextTick(callback) 在DOM更新完成后再执行回调函数,一般在修改数据之后使用该方法,以便获取更新后的DOM//修改数据
        vm.name='汤姆';//DOM还没更新完,Vue实现响应式并不是数据发生改变之后DOM立即变化,需要按一定的策略进行DOM更新,需要时间!!// console.log(vm.$refs.title.textContent);//获取元素里面的文本
        vm.$nextTick(function(){//DOM更新完成,更新完成后再执行此代码
            console.log(vm.$refs.title.textContent);});</script></body>
</html>

View Code

转载于:https://www.cnblogs.com/xuanan/p/7854148.html

vue实例的属性和方法相关推荐

  1. Vue2.x源码学习笔记-Vue实例的属性和方法整理

    还是先从浏览器直观的感受下实例属性和方法. 实例属性: 对应解释如下: vm._uid // 自增的id vm._isVue // 标示是vue对象,避免被observe vm._renderProx ...

  2. Vue实例的属性及模板渲染

    Vue实例的属性及模板渲染 1 概述 2 el:与DOM元素绑定 3 data:定义双向绑定的数据 4 computed:计算属性 5 methods:定义Vue实例的方法 6 Vue中的三种模板 6 ...

  3. vue系列:vue的常用属性和方法

    vue系列:vue的常用属性vm.$ el.vm.$ data.vm.$ options.vm.$ refs和方法vm.$ mount().vm.$ nextTick().vm.$ set().vm. ...

  4. python methodtype_Python的实例定属性和方法或类绑定方法

    一.给实例对象绑定属性和方法: 1.给实例绑定属性:先定义一个Student类 #!/usr/bin/python class Student(object): pass 然后绑定属性: s = St ...

  5. java基础之类、对象、实例、属性、方法等概念理解

    在之前的文章里,讲过一些java基础概念,并写了一个简单的java入门代码,通过这些代码,对类和方法的定义做了部分说明. java基础介绍及第一个java程序 如果是了解java的同学,可能就没什么问 ...

  6. python-面向对象名词解析(类、实例、属性、方法、对象)

    面向对象的概念总结 类: 一系列对象的特征与技能的抽象 如何理解:我们把现实生活中的物体可以抽象成一个个对象,如学校中的学生:           1.归类--我们可以把学生都归成一个学生类. 2.抽 ...

  7. vue的methods属性的方法中出现回调函数,在回调函数内部获取data中的数据

    在vue中,可能会遇到在methods属性中书写的方法中出现回调函数的情况,如以下代码: data(){return{gemometry: ""} } methods: {draw ...

  8. 动态给实例添加属性和方法

    from types import MethodType#创建一个空类 class Person(object):__slots__ = ("name","age&quo ...

  9. 二、Vue(发送AJAX请求、Vue生命周期、计算属性、属性和方法、自定义指令、过渡(动画))

    一. 发送AJAX请求 1. 简介     vue本身不支持发送AJAX请求,需要使用vue-resource.axios等插件实现     axios是一个基于Promise的HTTP请求客户端,用 ...

最新文章

  1. 如何把手变成手控_在这个模拟手的VR游戏里,你能体验到很多手控福利
  2. mysql 让别人连接我的数据库
  3. springmvc请求返回一个字符_SpringMVC系列之Web利器SpringMVC
  4. Java项目课程02:系统概述
  5. 阿里大文娱:不存在“优酷自制团队转入阿里影业”一说
  6. java许愿墙_18.JavaScript实现许愿墙效果
  7. iptables转发基础
  8. 微服务架构实战(二):使用API Gateway
  9. [幽默漫画]对于程序猿来说deadline很容易搞定!
  10. jsp % % ! 区别
  11. win10自带输入法突然变成了繁体
  12. 双曲正切matlab,如何在MatLab中用双曲正切拟合数据点?
  13. 独立思考,提高效率,做更有意义的事
  14. 心田花开写人作文指导,小学优秀写人作文推荐
  15. 单节点Elasticsearch健康状态为 yellow
  16. cocos2d-x apk 打包路径太深
  17. 计算机奥林匹克竞赛基础知识,竞赛考什么?五大学科竞赛基础常识盘点
  18. 教你一招解决百度网盘限速
  19. 渗透测试-sqlmap绕过WAF脚本编写
  20. Java 递归实现汉诺塔问题

热门文章

  1. qt使用矢量图字体ttf作为图标
  2. 15 个边玩游戏边学编程的网站,从此学习编程不再枯燥
  3. AXURE表白原型(拼图+心形照片墙+表白信)
  4. Python 实现通过Baidu地图批量自动查询Excel表中各单位的地址
  5. UVA e 11795 洛克人的难题
  6. 看了一篇关于游戏外挂类型总结的文章,感觉很有用,离我还很远。。
  7. 卸载nvidia显卡驱动
  8. 垃圾分类小程序怎么做
  9. 手写简单的HttpServer基于Java nio 实现socket异步通信(请求映射注解方式)
  10. 理财实践之打新债(捡钱神器)