zoukankan      html  css  js  c++  java
  • 读掘金小册组件精讲总结1

    1.组件分类

    (1)由 vue-router 产生的每个页面,它本质上也是一个组件(.vue),主要承载当前页面的 HTML 结构,会包含数据获取、数据整理、数据可视化等常规业务。整个文件相对较大,但一般不会有 props 选项和 自定义事件,因为它作为路由的渲染,不会被复用,因此也不会对外提供接口。

    (2)不包含业务,独立、具体功能的基础组件,比如日期选择器、登录注册弹窗、toast等。这类组件作为项目的基础控件,会被大量使用,因此组件的 API 进行过高强度的抽象,可以通过不同配置实现不同的功能。

    (3)介于第一类第二类之间的业务组件,是只会在当前项目中用到的。

    2.组件的三个api:prop,event,slot

    props 最好用对象的写法,这样可以针对每个属性设置类型、默认值或自定义校验属性的值。

    自定义事件event

    <template>
      <button @click="handleClick">
        <slot></slot>
      </button>
    </template>
    <script>
      export default {
        methods: {
          handleClick (event) {
            this.$emit('on-click', event);
          }
        }
      }
    </script>
    <i-button @on-click="handleClick"></i-button>

    这里还有另一种方法,直接在父级声明,但为了区分原生事件和自定义事件,要用到事件修饰符 .native,所以上面的示例也可以这样写:

    <i-button @click.native="handleClick"></i-button>
    

    如果不写 .native 修饰符,那上面的 @click 就是自定义事件 click,而非原生事件 click,但我们在组件内只触发了 on-click 事件,而不是 click,所以直接写 @click 会监听不到。

    插槽 slot,知道具名slot就行了。

  • 相关阅读:
    C++ Primer Plus 第15章 友元、异常和其它
    03013_JDBC工具类
    python GUI编程(Tkinter)
    Python2.x与3​​.x版本区别
    【python教程】Python JSON
    【python教程】Python IDE
    通过Google Custom Search API 进行站内搜索
    支持wmv、mpg、mov、avi格式的网页视频播放代码
    编写更好的jQuery代码的建议
    KindEditor得不到textarea值的解决方法
  • 原文地址:https://www.cnblogs.com/gggwf/p/10218553.html
Copyright © 2011-2022 走看看