v-bind:class=“表达式”
或 :class=“表达”
:class="activeClass"
activeClass = ‘active’ 等价于 class="active"
:class="{active: isActive, error: hassError}"
isActive = true, hassError = true等价于class="active, error"
:class="['active', 'error']"
等价于 class="active, error"
v-bind:style="表达式"
或:style="表达式"
:style="{color: activeColor, fontSize: fontSize + 'px'}"
v-on:click="index"
或 @click="index"
@click="index"
index(event)@click="index('name', $event)"
index(name, event)解决界面加载时候,出现{{msg}}闪烁
<p v-text="msg">p>
msg = "hello"
<style>
[v-clock] {
display: none
}
style>
<p v-clock>{{msg}}p>
Vue.directive('指令名', {
// el 代表了使用了此指令的那个DOM元素
// binding 可获取使用了此指令的绑定值 等
inserted: function(el, binding) {
// 逻辑代码
}
})
directives: {
指令名, {
// el 代表了使用了此指令的那个DOM元素
// binding 可获取使用了此指令的绑定值 等
inserted: function(el, binding) {
// 逻辑代码
}
}
}
Vue.filter('过滤器名', function(value){
})
filters: {
'过滤器名': function(value) {
}
}
<div>{{数据属性名称|过滤器名称}}div>
<div>{{数据属性1|过滤器名称(数据属性2,数据属性3,...)}}div>
<div v-bind:id="数据属性名称|过滤器名称">div>
<div v-bind:id="数据属性1|过滤器名称(数据属性2,数据属性3,...)">div>
props
父组件向子组件传值$emit
自定义事件slot
插槽分发内容props
父组件向子组件通信props
的定义方式
方式一: 数组形式
props: ['id', 'name', 'salary', 'isPublished', 'commentIds', 'author', 'getEmp']
方式二:对象形式
props: {
id: Number,
name: String,
salary: Number,
isPublished: Boolean,
commentIds: Array,
author: Object,
getEmp: Function
}
方式三:指定属性名、数据类型、必要性、默认值
props: [
id: {
type: Number,
required: true,
default: 1
},
name: {
type: String,
required: true,
default: 'baize'
}
]
<my-component :id="1" :name="baize" :salary="5000">my-component>
$emit
子组件向父组件通信适用于子组件向父组件通信,不适用于隔代通信(建议使用props方式传递函数)
<my-component @child_edit="edit(value)">my-component>
this.$emit('child_edit', '传递的值')
slot
插槽分发内容主要用于父组件向子组件传递 标签+数据,(props和 **$emit()**只是传递数据)
<div>
<slot name="aaa"> 不确定的标签结构 1 slot>
<div>确定标签结构div>
<slot name="bbb"> 不确定的标签结构 2 slot>
div>
<child>
<div slot="aaa"> 向 name=aaa 的插槽处插入此标签数据 div>
<div slot="bbb"> 向 name=bbb 的插槽处插入此标签数据 div>
child>
PubSub.subscribe('消息名称(相当于事件名)', function(event, data) {
// 事件回调处理
})
PubSub.subscribe('pubSub', (event, data) => {
this.data = data
})
// 使用function(event, data) this指PubSub对象
// 使用箭头函数 this指父对象
PubSub.publish('消息名称(相当于事件名)', data)
PubSub.publish('pubSub', 1)
请求数据建议在create阶段
// 导出一个默认函数
module.exports = function() {
console.log('es6 之前的语法')
}
var a = require('文件名路径') //引入
a() // 使用
导出函数
// 导出一个默认函数
export default function(){
console.log('es6 语法')
}
import a from '文件名路径' // 引入
a() // 使用
导出对象
export default {
name: 'baize'
}
import a from '文件名路径' // 引入
console.log(a) // 使用
export.x = 'x'
export.y = 'y'
```html
var a = require('文件名路径') //引入
console.log(a.x, a.y)
#### ES6语法
```html
export default function(){
console.log('es6 语法')
}
export const x = 'x'
export const y = 'y'
export function fun(a, b) {
return a+b;
}
// 方式一
import {x, y, fun} from '文件名路径' // 引入
console.log(x, y, fun(1, 2)) // 使用
// 方式二
import * as temp from '文件名路径' // 引入
console.log(temp.default(), temp.x, temp.y, temp.fun(1, 2)) // 使用
// 方式三 按需导入
import {x, y} from '文件名路径' // 引入
console.log(x, y) // 使用