胡说八说:
知道wangEditor是在上一家公司(威锋网), 当时前端项目同构, 社区编辑器要重新选型, 最开始选了wangEditor, 后面产品还是选了froala-editor, (私信功能用的wangEditor)
不久之前在掘金上看到开源项目wangEditor作者准备在招募小伙伴, 打着试一试的想法就报名了, 然后作者给了一个小任务作为考核 :
task: 使用 webpack + ts 实现加粗,设置颜色, 设置标题功能
环境配置:
webpack-dev-serve:进行热跟新
uglifyjs-webpack-plugin: 压缩打包代码
less、 less-loader:规范css书写
file-loader:处理工具栏iconfont
ts-loader、ts-lint
实现思路:
因为功能比较简单, 所以代码没什么难度, 当时写的时候也想尽量写的规范点, 写到最后感觉还是四不像, 以后有时间再重新好好整一下吧
- 创建构造函数: MiniEditor
- 通过 initProto 函数挂载实例方法 (这里没考虑周到,方法都挂载到实例上了,并没有挂载到构造函数上)
- 合并组件配置
- 创建dom片段
- 将生成的工具栏dom和编辑区域dom填充到创建的dom片段中
- 将生成的dom片段挂载到绑定dom上
合并组件配置
首先规范组件配置项:
export interface pluginOptions {
name: string // 组件名字
openType?: string // 组件点击行为: 目前只规范了click和dropdown两种方式
dropDownList?: Array<dropDownItems> // 下拉框传入:规范必须有label字段
isExtenal?: boolean // 是否是外置组件
iconName?: string // 工具栏图标目前只实现了iconfont模式, 外置组件必须传入iconName
callback: (...val: any) => any // 点击组件图标回调
dropDownCallback?: (...val: any) => any // 点击下拉框子项回调
}
- 通过 createPlugin 函数创建组件dom
- 通过 mergePlugins 函数合并组件配置并生成dom集合
其他的也没啥讲的, 写的挺不好的, 感觉还是技术不够, 菜是原罪啊
写在后面:
在写这个考核任务的时候想的挺多的, 脑子想着要怎么样做到最好, 但是同时想的越多就越不知道从哪里开始, 就是典型的脑子说我行, 手却不听使唤
最后写完还是有点心得, 就是要 **先开始 **不要在脑子里面想这个想那个, 先写个东西出来,不满意再改,在实打实的东西上改比在脑子里面改要来的实际。
默默的贴一个github链接: