纯知识点整理,适合vue小白(不小心点了发布 /泪目)
1,指令 v-bind:id=‘domId’ //属性值绑定(缩写:id=‘XX’);v-on:click=‘add’//事件处理(缩写@click=‘XX’);v-if='seen’条件; v-for=‘todo in todos’;
var app = new Vue({
el: '#app', //元素
data: { //数据
message: 'Hello Vue!',
todos: [
{ text: 111, value: "Hhh" },
{ text: 222, value: "Hhh22" },
{ text: 333, value: "Hhh333" },
{ text: 444, value: "Hhh44" }
],
demo: {
firstName: 'John',
lastName: 'Doe',
age: 30
}
},
methods: { //方法
add: function() {
this.value = this.value + 1;
}
},
computed:{//计算属性 只在相关依赖发生改变时它们才会重新求值
reversedMessage: function () {
return this.message.split('').reverse().join('')
}
},
watch:{//侦听属性,在数据变化时执行异步或开销较大的操作时使用
}
})
Vue.component('todo-item', {
// todo-item组件接受一个"prop",自定义特性,这个 prop 名为 todo。
props: ['todo'],
template: '{{ todo.text }} '
})
-----html:-------------------------------
鼠标悬停几秒钟查看此处动态绑定的提示信息!
{{ index }}. {{ key }}: {{ value }}
{{reversedMessage}}
2,生命周期钩子的函数:
3, 事件修饰符。由点开头的指令后缀表示。
.stop
.prevent
.capture
.self
.once
.passive
.once
.passive
按键.enter .tab .delete .esc.space.up.down.left.right
.sync修饰符
当你需要双向数据绑定时,会导致数据流混乱,所以推荐使用update:myPropName 的模式触发事件取而代之。即
子组件:this.$emit(‘update:title’, newTitle)
父组件:
等同于:
带有 .sync 修饰符的 v-bind 不能和表达式一起使用
可以串用 顺序很关键
4, v-model 指令在表单 、 及 元素上创建双向数据绑定。绑定的值通常是静态字符串 (对于复选框也可以是布尔值)
data: function () {
return {
count: 0
}
}
6,父组件子组件通信:子组件调用内建的 $emit 方法并传入事件的名字,来向父级组件触发一个事件,父组件用v-on 在博文组件上监听这个事件,就像监听一个原生 DOM 事件一样,父级组件监听这个事件时,可以通过 $event 访问到被抛出的值;(事件名推荐用kebab-case而非驼峰格式 )
父子 prop 之间是单向下行绑定:父级 prop 的更新会向下流动到子组件。每次父级组件发生更新时,子组件中所有的 prop 都将会刷新为最新值。你不应该在子组件内部改变该 prop,否则数据流向难以理解。
组件:
内容:
7,插槽,使用自定义组件时内容输出位置
8,动态组件:
组件名随currentTabComponent变化而变化
9,局部注册:局部注册的组件在其子组件中不可用
new Vue({
el: '#app',
components: {
'component-a': ComponentA,
'component-b': ComponentB
}
})
var ComponentA = { /* ... */ }
var ComponentB = { /* ... */ }
10,其他:
vm.userProfile = Object.assign({}, vm.userProfile, {
age: 27,
favoriteColor: 'Vue Green'
})
Vue.component('async-webpack-example', function (resolve) {
// 这个特殊的 `require` 语法将会告诉 webpack
// 自动将你的构建代码切割成多个包,这些包会通过 Ajax 请求加载
require(['./my-async-component'], resolve)
})