vue实例的属性和方法
1. 属性
vm.$el
vm.$data
vm.$options
vm.$refs
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>vue</title>
<script src="https://unpkg.com/vue"></script>
<script> window.onload = function(){ var vm = new Vue({
el:'#app',
data:{
msg:'Hello Word !',
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); //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>
</head> <body> <div id="app">
{{msg}} <h2 ref="hello">你好</h2>
<p ref="world">世界</p> <hr> <h1 ref="title">标题:{{name}}</h1> </div> </body> </html>
2. 方法
vm.$mount()
vm.$destroy()
vm.$nextTick(callback)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>vue</title>
<script src="https://unpkg.com/vue"></script>
<script> window.onload = function(){
/**
* 方法
*/
//vm.$mount() 手动挂载vue实例
// vm.$mount('#itany'); var vm = new Vue({
data:{
msg:'欢迎来到武汉',
name:'Tom'
}
}).$mount('#app'); //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>
</head> <body> <div id="app">
{{msg}} <h1 ref="title">标题:{{name}}</h1> </div> </body> </html>
vm.$set(object,key,value)
vm.$delete(object,key)
 
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>vue</title>
<script src="https://unpkg.com/vue"></script>
<script> window.onload = function(){
var vm = new Vue({
el:"#app",
data:{
user:{
id:10010,
name:'Tom'
}
},
methods: {
//通过普通方式为对象添加属性时vue无法实时监视到
doUpdate:function(){
//this.user.name = 'Jam';
this.$set(this.user,'name','Jam');
},
doAdd:function(){
//this.user.age = 23;
//this.$set(this.user,'age',18); //通过vue实例的$set方法为对象添加属性,可以实时监视
//Vue.set(this.user,'age',18)
if(this.user.age){
this.user.age++;
}else{
Vue.set(this.user,'age',1)
}
},
doDelete(){
if(this.user.age){
Vue.delete(this.user,'age');
}
}
}
})
} </script>
</head> <body> <div id="app">
<h1>{{user.name}}</h1>
<h1>{{user.age}}</h1> <button v-on:click="doUpdate">修改属性</button>
<button v-on:click="doAdd">添加属性</button>
<button v-on:click="doDelete">删除属性</button>
</div> </body> </html>

vm.$watch(data,callback[,options])

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>vue</title>
<script src="https://unpkg.com/vue"></script>
<script> window.onload = function(){
var vm = new Vue({
el:"#app",
data:{
name:'Tom',
age:22,
user:{
id:10010,
name:'Maria'
}
},
watch:{ //方式2:使用vue实例提供的watch选项
age:function(newVal,oldVal){
console.log('age原值:'+oldVal+',age新值:'+newVal);
},
user:{
handler:(newVal,oldVal) => {
console.log('user原值:'+oldVal.name+',user新值:'+newVal.name);
},
deep:true //深度监视,当对象中的属性发生变化时也会监视
}
}
})
//方式1:使用vue实例提供的$watch()方法
vm.$watch('name',function(newVal,oldVal){
console.log('name原值:' + oldVal,'name新值:' + newVal);
},true)
} </script>
</head> <body> <div id="app"> <input type="text" v-model="name">
<h2>{{name}}</h2> <hr> <input type="text" v-model="age">
<h2>{{age}}</h2> <hr> <input type="text" v-model="user.name">
<h2>{{user.name}}</h2> </div> </body> </html>

  

Vue(十二)vue实例的属性和方法的更多相关文章

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

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

  2. vue实例的属性和方法

    vue实例的属性和方法 1. 属性 vm.$el #指定要绑定的元素 vm.$data #Vue 实例的数据对象 vm.$options #获取自定义属性的值 new Vue({ customOpti ...

  3. Vue2.0源码思维导图-------------Vue 构造函数、原型、静态属性和方法

    已经用vue有一段时间了,最近花一些时间去阅读Vue源码,看源码的同时便于理解,会用工具画下结构图. 今天把最近看到总结的结构图分享出来.希望可以帮助和其他同学一起进步.当然里边可能存在一些疏漏的,或 ...

  4. “全栈2019”Java多线程第十二章:后台线程setDaemon()方法详解

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java多 ...

  5. 从壹开始前后端分离 [ Vue2.0+.NET Core2.1] 二十二║Vue实战:个人博客第一版(axios+router)

    前言 今天正式开始写代码了,之前铺垫了很多了,包括 6 篇基础文章,一篇正式环境搭建,就是为了今天做准备,想温习的小伙伴可以再看看<Vue 基础入门+详细的环境搭建>,内容很多,这里就暂时 ...

  6. python学习笔记(二十二)实例变量、实例方法、类变量、类方法、属性方法、静态方法

    实例变量:在类的声明中,属性是用变量来表示的.这种变量就称为实例变量,也就是成员变量. 实例方法:在类中声明的方法,例如:my(self),必须实例化之后才可以使用,否则会报错. 类变量:公共的变量, ...

  7. vue入门(二)----模板与计算属性

    其实这部分内容我也是参考的官网:http://cn.vuejs.org/v2/guide/syntax.html,但是我还是想把自己不懂的知识记录一下,加深印象,也可以帮助自己以后查阅.所谓勤能补拙. ...

  8. Vue学习(二)-Vue中组件间传值常用的几种方式

    版本说明:vue-cli:3.0 主要分为两类: 1.父子组件间的传值 2.非父子组件间的传值 1.父子组件间传值 父组件向子组件传值 第一种方式: props 父组件嵌套的子组件中,使用v-bind ...

  9. vue教程二 vue组件(3)

    给属性传递数据 <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> < ...

随机推荐

  1. 易企秀H5 json配置文件解密分析

    最近需要参考下易企秀H5的json配置文件,发现已经做了加密,其实前端的加密分析起来只是麻烦点. 抓包分析 先看一个H5: https://h5.eqxiu.com/s/XvEn30op F12可以看 ...

  2. BZOJ2527 [Poi2011]Meteors 整体二分 树状数组

    原文链接http://www.cnblogs.com/zhouzhendong/p/8686460.html 题目传送门 - BZOJ2527 题意 有$n$个国家. 太空里有$m$个太空站排成一个圆 ...

  3. CentOS 7.2配置Apache服务httpd小伙伴们可以参考一下

    这篇文章主要为大家详细介绍了CentOS 7.2配置Apache服务 httpd上篇,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 一.Perl + mod_perl 安装mod_perl使Per ...

  4. 038 lock wait timeout exceeded;try restarting transaction

    场景:有两个会话,其中会话1在事务操作,会话2在等待这个事务操作完成,然后会有这个报错产生. 通过查询资料,在这里整理一下. 一:总结timeout参数的作用 1.操作 2.具体解释 1)connec ...

  5. Windows 如何备份恢复Ubuntu系统文件

    之前安装的Win10 + Ubuntu18.04双系统,Ubuntu由于特殊原因崩了,所以打算重装系统 但是进不去Ubuntu系统,Ubuntu中的文件无法备份 试了win10的优盘启动工具中的DG, ...

  6. objectmapper使用

    https://www.cnblogs.com/liam1994/p/5629356.html

  7. jstl select <c:if test下拉菜单不能被选中!

    关于select下拉菜单中出现中文时,因为编码的问题,不能用“==”来进行判断,必须要用“eq”,而且中文带上单引号: <select id="operateType" na ...

  8. RF:RF实现根据乳腺肿瘤特征向量高精度(better)预测肿瘤的是恶性还是良性—Jason niu

    %RF:RF实现根据乳腺肿瘤特征向量高精度(better)预测肿瘤的是恶性还是良性 load data.mat a = randperm(569); Train = data(a(1:500),:); ...

  9. 【JavaScript】函数

    No1: 定义函数 function abs(x) { if (x >= 0) { return x; } else { return -x; } } var abs = function (x ...

  10. hdu 1043 Eight (八数码问题)【BFS】+【康拓展开】

    <题目链接> 题目大意:给出一个3×3的矩阵(包含1-8数字和一个字母x),经过一些移动格子上的数后得到连续的1-8,最后一格是x,要求最小移动步数. 解题分析:本题用BFS来寻找路径,为 ...