Skip to content

指令

v-model

双向绑定

vue
<template>
  <input v-model="age" />
  <input :value="age" @input="age = $event.target.value" />

  <Blog v-model="blog">默认</Blog>
  <Blog v-model:blog="blog">命名</Blog>
</template>
js
// 默认
defineProps(['modelValue'])
defineEmits(['update:modelValue'])

// 命名
defineProps(['blog'])
defineEmits(['update:blog'])
js
// 默认且唯一
export default {
  props: ['value'],
  emits: ['input']
}

.sync

vue2 中子组件可以修改父组件数据的另一种方式,类似 v-model ,vue3 不可用

vue
<template>
  <Blog :blog.sync="blog"></Blog>
</template>

<script>
export default {
  data() {
    return {
      blog: blog
    }
  }
}
</script>
js
export default {
  props: ['blog'],
  emits: ['update:blog'],
  methods: {
    changeParent() {
      this.$emit('update:blog', newBlog)
    }
  }
}

v-cloak

隐藏尚未完成编译的模板

css
[v-cloak] {
  display: none;
}
html
<div v-cloak>{{ message }}</div>

v-if 和 v-show

v-if 和 v-for

v-for

其他

v-text v-html v-else v-else-if v-on v-bind v-slot v-pre v-once v-memo