Vue组件

动态组件

<component v-bind:is="currentTabComponent"></component>

Prop

子组件

<template>
  <div class="blog-post">
    <h3>{{ post.title }}</h3>
    <button @click="emitMethod">Enlarge text</button>
    <div v-html="post.content"></div>
  </div>
</template>
<script>
export default {
    props:['post'],
    methods:{
        emitMethod(){
            //父组件中可以通过$event获取到这个0.1的参数
            // 或者放到function(event)参数里边
            this.$emit('emit',0.1)
        },
    }
};
</script>

父组件

<template>
  <div>
    <blog-post post="hha" @emit="postFont + $event"></blog-post>
    <blog-post post="hha" @emit="getEmit"></blog-post>
  </div>
</template>
<script>
export default {
  props: ["post"],
  methods: {
    getEmit(event) {
      console.log(event);
    },
  },
};
</script>

v-model

<input v-model="searchText">

等价于

<input
  v-bind:value="searchText"
  v-on:input="searchText = $event.target.value"
>

在组件上的写法

<template>
  <input
    v-bind:value="inputValue"
    v-on:input="$emit('input', $event.target.value)"
  />
</template>
<script>
export default {
  props: ["inputValue"],
};
</script>

父组件

<custom-input v-model="searchText"></custom-input>

插槽分发内容

父组件

<alert-box>
  Something bad happened.
</alert-box>

子组件

<div class="demo-alert-box">
      <strong>Error!</strong>
      <slot></slot>
</div>
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 组件注册 组件名 在注册一个组件的时候,我们始终需要给它一个名字。 该组件名就是Vue.component的第一个...
    oWSQo阅读 413评论 0 1
  • 组件API包括三部分: prop / 事件 / 插槽 prop: 允许外部环境传递数据到组件 事件: 允许组件内部...
    jshan阅读 2,484评论 0 2
  • 组件是什么? 组件是可复用的 Vue 实例,且带有一个名字。 组件的注册与使用 组件与vue实例一样,需要注册,才...
    asimpleday阅读 344评论 0 0
  • 组件 全局组件 <component-test></component-test> ...
    王蕾_fd49阅读 312评论 0 1
  • 前言 在工作中经常会用到Vue,包括也会用到很多重要的点例如组件化等等,现在也想对于之前的应用和学习做一个小小的总...
    羊驼驼驼驼阅读 455评论 0 2