首页 > 其他 > 详细

vue学习笔记

时间:2020-01-30 21:47:23      阅读:57      评论:0      收藏:0      [点我收藏+]

常用vue指令

{{theValue}}文本值绑定
v-bind:title="value":属性值绑定
v-if="value":条件指令
v-for="item in arr":循环指令
v-on:click="deal"事件监听指令
v-medol="theValue":双向绑定
v-once:只更新一次
v-html="theHtml" 允许包含html标签元素

 

声明vue对象

var app=new vue({
el:‘#map1‘,
data:{theValue:‘aa‘},
created: function () {
  this.debouncedGetAnswer = _.debounce(this.getAnswer, 500)
},
computed: {
  reversedMessage: function () {
    return this.message.split(‘‘).reverse().join(‘‘)
  }
},
methods: {
  reversedMessage: function () {
    return this.message.split(‘‘).reverse().join(‘‘)
  }
},
watch: {
  firstName: function (val) {
    this.fullName = val + ‘ ‘ + this.lastName
  },
  lastName: function (val) {
    this.fullName = this.firstName + ‘ ‘ + val
  },
  question: function (newQuestion, oldQuestion) {
    this.answer = ‘Waiting for you to stop typing...‘
    this.debouncedGetAnswer()
  }
}
})

计算属性

计算属性vs方法: 可以达到同样的效果,但是,计算属性只有当依赖绑定属性更新时执行,方法则会一直执行。
计算属性vs侦听器:可以达到同样的效果,但是,计算属性是依赖于绑定属性更新的,自动执行,写法比监听器(多个对象要监听多次)简单

 

访问数据属性

app.theValue,app.$data.theValue

 

变量变化监控
vm.$watch(‘a‘, function (newValue, oldValue) {xxxxx})

(当需要在数据变化时执行异步或开销较大的操作时)

 

生命周期

创建created,挂载mounted,更新updated,销毁destroyed

 

等于符号

==是值是否相等,===是对象是否相等。


v-bind动态参数
<a v-bind:[attributeName]="url">
<a v-bind:[eventName]="aaa">

 

事件修饰符
<form v-on:submit.prevent="onSubmit"
.stop
.prevent
.capture
.self
.once
.passive
event.preventDefault() 或 event.stopPropagation()


指令的简写
v-bind,冒号:,v-on,邮箱符号@


注册组件

Vue.component(‘todo-item‘, {
    data: function () {
        return {
        count: 0
        }
    } ,
    props: [‘todo‘],
    template: ‘<li>{{ todo.text }}</li>‘
})           

 

class绑定+style绑定
对象语法:<div v-bind:class="classObject"></div>
数组语法:<div v-bind:class="[{ active: isActive }, errorClass]"></div>

对象语法:<div v-bind:style="styleObject"></div>
数组语法:<div v-bind:style="[baseStyles, overridingStyles]"></div>

 

注意事项

一、数组更新
以下情况,vue不能检测到
1、利用索引设置数组项时
vm.items[indexOfItem] = newValue
2、修改数组长度时
vm.items.length = newLength
解决办法:
问题1:
Vue.set(vm.items, indexOfItem, newValue)
vm.$set(vm.items, indexOfItem, newValue)
vm.items.splice(indexOfItem, 1, newValue)
问题2:
vm.items.splice(newLength)

 

2、对象属性的添加或删除

Vue 不能检测对象属性的添加或删除
解决办法:
Vue.set(object, propertyName, value)
vm.$set(vm.userProfile, ‘age‘, 27)


添加多个属性:
Object.assign()

 

vue学习笔记

原文:https://www.cnblogs.com/tiandi/p/12243867.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!