美文网首页vue.js学习
vuedose.tips(系列翻译五)

vuedose.tips(系列翻译五)

作者: 知识文青 | 来源:发表于2019-10-05 17:31 被阅读0次

    Adaptive components using v-bind and v-on
    当您使用基于组件的技术时,一旦应用程序开始增长,就需要对组件进行结构化和分类,以使它们尽可能简单易维护。
    组件组合是一种流行的强大模式,可帮助重用和构造基于组件的技术中的代码……但是组件组合到底有什么用呢? 尽管这是一个通用概念,但可以说当您进行组件合成时,您是在将一个或多个组件组合在一起时创建一个组件。
    一种情况是,我们有一个基本组件,例如BaseList,而您想创建一个类似的组件,并在其之上具有一些其他功能,例如SortableList。我称它们为自适应组件(也称为代理或包装器组件)
    构建自适应组件时,通常希望SortableList保持与原始BaseList相同的API,以使组件保持一致。 这意味着您需要从SortableList中传递所有道具并监听BaseList的所有事件。
    诀窍是:您可以使用v-bind和v-on来做到这一点:

    <!-- SortableList  -->
    <template>
      <AppList v-bind="$props" v-on="$listeners"> <!-- ... --> </AppList>
    </template>
    
    <script>
      import AppList from "./AppList";
    
      export default {
        props: AppList.props,
        components: {
          AppList
        }
      };
    </script>
    

    v-bind的工作方式基本上将所有属性一一传递给AppList,但是一次在对象中全部传递。 props是组件实例中的对象,包含该组件的所有属性。 您可以想象,与 v-on =“ listeners”的工作方式完全相同,但适用于事件
    这也适用于使用 v-model 的双向绑定组件。如果您不知道,v-model 是传递value属性并监听输入事件的简写。

    最后,请记住,在Vue.js中,我们必须显式声明组件的props才能被这样解释。 建立自适应组件时,一种快速的方法是使用基本组件props来定义它们,就像我在props:AppList.props中所做的那样。
    也许您没有看到自适应组件的实际使用?不用担心,在下一个技巧中,我将构建一个自适应组件的真实案例,以便您可以实际使用它。敬请关注!

    相关文章

      网友评论

        本文标题:vuedose.tips(系列翻译五)

        本文链接:https://www.haomeiwen.com/subject/rccypctx.html