Vue 常用属性 |
您所在的位置:网站首页 › vue监听变量的方法 › Vue 常用属性 |
数据属性
组件的 data 选项是一个函数(data里面是有return的)。Vue 会在创建新组件实例的过程中调用此函数(将里面定义的变量都放到实例里面去,你就可以使用this点出来,包括HTML里面就能够使用这些变量的)。 它应该返 回一个对象,然后 Vue 会通过响应性系统将其包裹起来,并以 $data 的形式存储在组件实例中。 为方便起见,该对象的任何顶级“属性”也会直接通过组件实例暴露出来。(本来是使用this.$data.msg点出来,现在this.msg就可以出来了)
vm.$data.msg其实和vm.msg就是同一个东西,就像一个语法糖。 首页 msg:{{ msg }} const HelloVueApp = { data(){ return{ msg: "hello" } } } //创建vm实例,vm是实例的名称 const vm = Vue.createApp(HelloVueApp).mount("#vue") //将vue实例挂载到对应的选择器上面去,干了两件事情,第一初始化实例,其次是挂载 // 'Hello Vue!' console.log(msg) // 'Hello Vue!' vm.msg = "hello world" console.log(vm.$data.msg)
方法 方法(methods):处理数据的函数,在methods选项中定义的函数称为方法。 在 methods 选项中定义的方法与 data 选项中的数据一样,可以在组件的模板中使用(挂载到html中某个dom上面)。 在模板中,它们通常被当做事件监听使用。 首页 增加count:{{ count }} const HelloVueApp = { data(){ return{ count: 0 } }, methods:{ increment(){ this.count++ } } } Vue.createApp(HelloVueApp).mount("#hello-vue")计算属性 计算属性(computed):根据所依赖的数据动态显示新的计算结果。 示例 : 需要在 {{}} 里添加计算再展示数据,例如统计分数,数值计算一般用法: 首页 增加总分:{{ chinese + math + english }} const HelloVueApp = { data(){ return{ chinese: 10, math: 20, english: 30 } } } const vm = Vue.createApp(HelloVueApp).mount("#hello-vue") computed 计算属性用法: 小结: 计算属性一般就是用来通过其他的数据算出一个新数据,而且它有一个好处就是, 它把新的数据缓存下来了,当其他的依赖数据没有发生改变,它调用的是缓存的数据,这就极大的提高了我 们程序的性能。 而如果写在methods里,数据根本没有缓存的概念,所 以每次都会重新计算。这也是为什么不用methods 的原因 ! 首页总分:{{ sum }} const HelloVueApp = { data(){ return{ chinese: 10, math: 20, english: 30 } }, computed:{ sum: function(){ let a = this.math + this.chinese + this.english return a } } } const vm = Vue.createApp(HelloVueApp).mount("#hello-vue")你要的数据名不需要在data里面去定义,但是数据还是需要的,你的数据都是从data里面拿到的。 监听属性 监听属性(watch):是一个观察动作,监听data数 据变化后触发对应函数,函数有newValue(变化之后结果)和oldValue(变化之前结果)两个参数。 当需要在数据变化时执行异步或开销较大的操作时, 这个方式是最有用的。 某些值在变化了被监听到之后,获取数据,展示出来。 首页旧值:{{ oldmsg }} 新值:{{ watchnewmsg }} 按钮 const HelloVueApp = { data(){ return{ oldmsg: "Hello Vue!", watchnewmsg: '111' } }, methods:{ btn(){ this.oldmsg = 'Hello xxxx' } }, watch: { oldmsg: { handler(newValue, oldValue) { console.log(newValue, oldValue) this.watchnewmsg = newValue } } } //立即处理,进入页面就触发 immediate: true } Vue.createApp(HelloVueApp).mount("#hello-vue")可以看到老的值是hello vue,新的值是hello china。函数里面只定义了oldmsg的变化,并没有定义watchnewmsg的变化。在watch里面监听到了之后,它才发生了watch msg的变化。 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |