夏天夏 夏天夏
首页
  • 技术分享

    • 小白都能看懂的闭包
    • 关于后台管理应用
    • 关于技术的取舍
    • 前端工程化
    • 切换node版本
    • 如何优雅的写事件代理
    • 我所不了解的技术
    • 我喜欢的parcel
    • angular1使用
    • npm script打造前端工作流
  • 发布一个node插件

    • 发布一个npm包
    • 如何打包一个插件工具库
    • 打包工具的选择
  • 年终总结

    • 2019年总结
    • 2020年总结
    • 2021年总结
  • JavaScript
  • CSS
  • 框架
  • Node
  • 服务
  • web3
  • 其他
我的作品
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

夏天夏

我也不饶岁月
首页
  • 技术分享

    • 小白都能看懂的闭包
    • 关于后台管理应用
    • 关于技术的取舍
    • 前端工程化
    • 切换node版本
    • 如何优雅的写事件代理
    • 我所不了解的技术
    • 我喜欢的parcel
    • angular1使用
    • npm script打造前端工作流
  • 发布一个node插件

    • 发布一个npm包
    • 如何打包一个插件工具库
    • 打包工具的选择
  • 年终总结

    • 2019年总结
    • 2020年总结
    • 2021年总结
  • JavaScript
  • CSS
  • 框架
  • Node
  • 服务
  • web3
  • 其他
我的作品
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • JavaScript

  • CSS

  • 框架

  • Node

  • 服务

  • 其他

    • 编程概念
    • 打包工具
    • 关于前端接口管理的一些思考
    • 开发环境
    • 浏览器兼容问题
    • 前端单元测试
    • 前端资源
    • 实用代码段
    • 书籍
    • 造轮子思路
      • VUE组件
      • Vue组件之间的通讯
        • 注意:
    • 造轮子思路二
    • 自定义组件
    • ajax
    • git笔记
    • iview踩坑记
    • sass
    • webpack原理跟配置
    • Canvas
    • OpenGraph
    • SEO
  • 设计模式

  • web3

  • react

  • 学习笔记
  • 其他
夏天夏
2022-05-15
目录

造轮子思路

# 原则

  • (对内)分层原则:正交原则
    • html 结构层分离 css 样式层分离 js 行为层分离
    • 例如:使用$div.addClass,不使用$div.show
  • (对外)封装原则:面向接口原则
    • 用户如何调用?
      • 先想好输入,输出,在写中间逻辑
      • 能不用接口最好不用接口

# 步骤

需求,UI,代码,测试

# 思路

如果需要渲染不知道长度的东西,可以考虑递归。

# VUE组件

vue组件主要由prop、event、slot着三部分构成其中

  • prop 定义了这个组件有哪些可配置的属性,prop最好使用对象的写法
    • default 组件的默认值
    • validator函数 对值进行自定义验证
  • slot,它可以分发组件的内容
    • 当需要多个插槽时,会用到具名 slot
  • 自定义事件 event
export default {
    methods: {
      handleClick (event) {
        this.$emit('on-click', event);
      }
    }
  }
1
2
3
4
5
6
7

通过 $emit,就可以触发自定义的事件 on-click ,在父级通过 @on-click 来监听:

<i-button @on-click="handleClick"></i-button>
1

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

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

# Vue组件之间的通讯

  • ref:给元素或组件注册引用信息;
  • $parent / $children:访问父 / 子实例。
  • Vuex
  • Bus (opens new window)
    • bus的本体就是一个单独的Vue实例,然后用$emit, $on, $off 分别来分发、监听、取消监听事件
  • 依赖注入 跨级组件间的通信
  • $dispatch 和 $broadcast 方法 (2.x已经被弃用 官方给出的代替方案是Bus (opens new window)或者自己实现一个)
  • 详细使用 (opens new window)

# 注意:

  • vue组件的事件不会冒泡
  • 属性不能以"data-"开头
编辑 (opens new window)
#组件#封装
上次更新: 2022/05/30, 17:42:07
书籍
造轮子思路二

← 书籍 造轮子思路二→

最近更新
01
远程办公的个人思考
02-21
02
SEO
01-02
03
NFT的价值
12-27
更多文章>
Theme by Vdoing | Copyright © 2019-2025 夏天夏 | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式