首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

React 造轮子系列:Icon 组件思路

本文 Icon 组件主要是参考 Framework7 中 Icon React Component 写。...你如果能说一局【我公司的人都在用我写UI框架】是不是就很牛逼?造 UI 轮子会遇到很多技术层面而非业务层面的知识?比如一些算法。 3.为了创造 你别人做了这么久事情,有没有自己做什么?...React.FunctionComponent 与 IconPropps 本轮子使用 React + TypeScript 来写,那么在 ts 中如何声明函数组件及级 Icon 组件传递参数呢,答案是使用...使用 svg-sprite-loader 加载 SVG 在上面我们指定了 Icon namewechat,那怎么让它显示微信图标呢,首先在阿里 Iconfont 下载对应 SVG image.png...icon 组件导入对应 svg,这样要是我需要100个 svg ,我就要导入100次,这样做太傻,文件也会变得冗长。

2.1K20

React 造轮子系列:Icon 组件思路

本文 Icon 组件主要是参考 Framework7 中 Icon React Component 写。...你如果能说一句【我公司的人都在用我写UI框架】是不是就很牛逼?造 UI 轮子会遇到很多技术层面而非业务层面的知识?比如一些算法。 3.为了创造 你别人做了这么久事情,有没有自己做什么?...React.FunctionComponent 与 IconPropps 本轮子使用 React + TypeScript 来写,那么在 ts 中如何声明函数组件及级 Icon 组件传递参数呢,答案是使用...使用 svg-sprite-loader 加载 SVG 在上面我们指定了 Icon namewechat,那怎么让它显示微信图标呢,首先在阿里 Iconfont 下载对应 SVG image.png...icon 组件导入对应 svg,这样要是我需要100个 svg ,我就要导入100次,这样做太傻,文件也会变得冗长。

4.7K70
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    前端架构探索与实践

    首先拿到基本接口数据,通过自定义状态管理,挂载到全局 state 对应组件名下。容器层通过组件配置文件,渲染对应组件。最终呈现出完成一个页面。...所有弹层看做为一个模块,只是内容不同而已。而内容,即为我们之前说组件目录结构中 components 内容 定义模块 Models 定义模块类型 编写模块属于类型 ? 挂载到 dao 中 ?...与手动下拉页面容器橡皮筋效果冲突,而「倒是页面疯狂抖动」。所以。。。。重构。 旧版容器功能点 ❝源码页面中使用部分 ❞ ? 重构使用 ❝基本没有太大改变 ❞ ?...: () => FunctionComponent | JSX.Element; /** * 自定义容器样式 */ customStyles?...pmc init-mod 调用def init tbe-mod,并且仓库升级支持 ts 开发模式 pmc publish-init 发布端架构初始化,基于 react 应用 发布端架构模板地址:publish-project

    99720

    React造轮系列:对话框组件 - Dialog 思路

    ,我们想是直接通过组件内包裹内容,如: // dialog/dialog.example.tsx ......接下来来看一个样式问题,首先先给出我们遮罩样式: .fui-dialog { position: fixed; background: white; min-width: 20em; z-index...效果: image.png 恩,感觉没问题,这时我们在 Dialog 组件在嵌套一层 zIndex 9 呢,如: <div style={{position:'relative', zIndex...visible,所以在 onClose 方法我们需要再次渲染一个新组件,并设置新组件 visible ture,覆盖原来组件: ... const alert = (content: string...总结 scopedClass 高阶函数使用 传送门 portal 动态生成组件 闭包传 API 本组件使用优化样式,如果有兴趣可以自行优化,本节源码已经上传至这里中lib/dialog

    3.6K20

    TDesign 更新周报(2022 年 5 月第 2 周)

    popup 事件问题 Dialog: 修复 normal 下加入 lock 导致页面无法滚动问题 Table: 修正拖拽列款边界条件判断 Progress: 修复环形进度条显示比例不准确 详情见:...notification: 增加 onMouseenter 和 onMouseleave 事件,保证鼠标移入移出组件时,duration 时间停止和重新计时。...dropdown 组件 Bug Fixes InputNumber: 修复 input-number 重构 hook 使用错误出现问题 tooltip: support set placement...DatePicker、TimePicker 组件样式结构有所调整,存在不兼容更新 Features DatePicker: 移除 rangeapi,分别导出 Datepicker 与 DateRangePicker...组件 支持 DatePickerPanel 与 DateRangePickerPanel 单独使用 支持年份、月份区间选择 支持 allowInput api TimePicker: 重新调整样式、允许输入交互重新设计

    1.6K40

    React造轮系列:Layout 组件思路

    ,可以发现问题,如果我们直接在组件内写 className={sc(''), className}, 我们通过 sc 方法生成函数会被传入 className 覆盖。...,需要是左右布局,当前样式无法满足,需要再次调整,参考 AntD 设计,当有里面有 Aside 组件, Layout 就多了一个左右布局样式 className,所以我们要在 Layout 组件检测...image.png 其实我们做是通过遍历,然后一个一个判断是否有 Aside ,如果有刚设置 true, 从上图可以看出,我们最后可以把所有判断结果 或(|)起来,如果 true ,则有,否则无...我们把把 if 条件通过 && 放到跟遍历同一级: // lib/layout/layout.tsx ......总结 Layout 组件相对简单,这边主要介绍一些实现思路,源码已经到这里。 参考 《方应杭老师React造轮子课程》

    2.8K30

    Vue.js 2 基础用法

    渲染 —— vue如何模板转换为html? # 模板语法是如何实现 在底层实现上,Vue模板编译成虚拟DOM渲染函数。...、可维护性和可测试性 使用场景: 通用组件:实现最基本功能,具有通用性、复用性,如按钮组件、输入框组件、布局组件等 业务组件:完成具体业务,具有一定复用性,如登录组件、轮播图组件等 页面组件:组织应用各个部分独立内容...// vue.config.js devServer: { proxy: 'http://localhost:3000' } # SSR 服务端渲染: vue 实例渲染 HTML 字符串直接返回...,在前端激活交互程序 优点 seo 首屏内容到达时间 缺点 开发逻辑复杂 开发条件限制,如一些生命周期不能使用,一些第三方库会不能用 服务器负载大 已存在 spa 转 SSR 需要 SEO 页面是少数可以考虑预渲染...利用 puppeteer 虚拟运行后在返回(即在服务端模拟浏览器渲染出结果再返回给用户端) 重构 nuxt.js 重写 基础实现 使用渲染器 vue 实例变成 html 字符串并返回

    7.2K40

    快速上手VueJS动画

    这是我们将要创建两个示例。 首先,创建自己CSS动画样式。 ? 然后,了解如何第三方CSS库与Vue动画一起使用。 ? 让我们赶快开始吧。 过渡元素 动画处理与VueJS过渡非常相似。...元素是一个包装器组件以下元素提供开始/结束转换类和钩子 有条件渲染或显示元素(v-show或v-if) 动态组件(:is) 组件根节点(可以包装整个组件) 能够检测这些元素之一何时更改状态元素...如果我们transition赋予name属性,则这些类变为name-enter,name-enter-active等。...创建我们第一个动画 对于初学者,我们需要一个条件元素,并在其周围加上过渡元素。我们入门单个文件组件看起来像这样。...show'> Toggle 设置好元素条件渲染后,我们使用两个类来设置动画样式:rotate-enter-active 和 rotate-leave-active,因为我们transition

    1.3K20

    TDesign 更新周报(2022年5月第3周)

    Input:修复 clear 触发后 focus, 修复外部传入onMouseenter, onMouseleave, onwheel 事件导致组件内对应方法未执行问题 TreeSelect...Tencent/tdesign-vue/releases/tag/0.41.5 Vue3 for Web 发布 0.15.0 ❗ Breaking Changes Cascader:基于select-input组件重构...属性失效问题 Form:修复触发方式 blur 不生效问题 Form:修复传入字段值 undefined 时候不会更新双向绑定值 Switch:修复 disabled 状态下仍然可以点击...性能优化,减少隐藏元素,使用更流畅 Table:重构表格嵌套关系 Input:重构输入框嵌套关系 Menu:重构导航菜单嵌套关系 Dropdown:重构下拉菜单嵌套关系 2....Color style 色彩样式层级和命名修改 3.

    2.8K30

    ReactPortals传送门

    React Portals可以翻译为传送门,从字面意思上就可以理解我们可以通过这个方法将我们React组件传送到任意指定位置,可以组件输出渲染到DOM树中任意位置,而不仅仅是组件所在...首先我们来看一下absolute,那么我们使用absolute其实很容易想到,我们需要从当前组件一直到body都没有其他position是relative/absolute元素,这个条件肯定是很难达到...,我们仅仅使用CSSposition定位是无法做到完全脱离父组件,即使我们能够达到脱离文档流效果,也会因为父组件样式而受到影响,特别是在组件库中,我们作为第三方组件库的话是完全没有办法控制用户设计...DOM结构,如果仅仅采用脱离文档流方法而不实际DOM结构分离出来的话,那么我们组件就会受到用户样式影响,这是我们不希望看到。...和MouseLeave事件,在这里我们child绑定onMouseEnter和onMouseLeave两个事件处理函数,portal绑定了onPopupMouseEnter和onPopupMouseLeave

    25150

    React源码解析之IndeterminateComponent

    答案就在mountIndeterminateComponent中: //如果节点是有更新 //根据节点类型进行组件更新 switch (workInProgress.tag) {...//如果这个条件成立的话,就表明可以在 FunctionComponent 中使用 ClassComponent API !!...,按照FunctionComponent流程更新组件 workInProgress.tag = FunctionComponent; //删除了 dev 代码 //reconcileChildren...,则按ClassComponent方式更新组件, 否则就确认为真正FunctionComponent,tag赋值FunctionComponent (5) 当 (4) 判断true时,里面执行一些...function解析请看: React源码解析之updateClassComponent(上) (6) 当 (4) 判断false时,里面执行一些function解析请看: React源码解析之

    92210

    AngularDart4.0 高级-属性(Attribute)指令 顶

    属性指令被用作元素属性。 例如,“模板语法”页面中内置NgStyle指令可以同时更改多个元素样式。 属性指令有两种: 基于类:一个全功能属性指令,使用类实现。...属性CSS选择器是方括号中属性名称。这里指令选择器是[myHighlight]。 Angular定位模板中具有名为myHighlight属性所有元素。...Angular每个匹配元素创建一个指令控制器类新实例,HTML元素注入到构造函数中。...它创建了一个HighlightDirective类实例,并将元素引用注入到指令构造函数中,该构造函数元素背景样式设置黄色。...您之前已将模板HTML绑定到组件属性,并且从未使用@Input。 有什么不同? 差别是一个信任问题。 Angular组件模板视为属于组件组件和它模板隐式互相信任。

    3.2K10

    React.forwardRef应用场景及源码解析

    但会碰到以下问题: ① 如果目标组件是一个FunctionComponent的话,是没有实例(PureComponent),此时用 ref 去传递会报错: ② 如果你是一个库开发者的话,使用该库的人是不知道库组件类别的...,那么当库组件类别是FunctionComponent时候,使用者想用 ref 获取库组件,怎么办?...③ redux 中connect方法组件包装成高阶组件(HOC),那么我如何通过 ref 去获取包装前组件实例?...④ props 不能传递 ref React 官方也表述了 ref 使用条件: React.forwardRef存在意义就是为了解决以上问题。...//因为jsx都是通过createElement创建,所以ReactElement类型固定:REACT_ELEMENT_TYPE //重要!

    2.2K20

    Vue.js前端开发快速入门与专业应用

    vm实例中data属性提供;三种修饰符:.camel,绑定我名字团圆驼峰命名 2.v-model用于input、select、textarea标签中,具有lazy、number、trim修饰符...3.v-if/v-else/v-show,用于根据条件展示对应模板内容,v-if在条件false情况下并不进行模板编译,而v-show则会隐藏,v-if切换消耗要比v-show高,但初始条件... 2.新增了两个类名enter-active和leave-active,用于你也说了元素本身样式和过渡样式,可以把过渡样式放到*-enter-active、*-leave-active...中,*-enter、*-leave中则定义元素过渡前样式 3.添加了三个新钩子函数,before-appear、appear、after-appear,before-appear:用于元素首次渲染...标签,这样会依次插入到对应组件slot标签中,以兄弟节点方式呈现 E.动态组件 1.动态组件,即多个组件可以使用同一挂载点,根据条件来切换不同组件 ,使用保留标签,通过绑定到

    2.8K20

    TDesign 更新周报(2022年3月第3周)

    修复 Form 中使用时,触发校验时机错误问题 InputNumber: 修复小数计算错误问题 Popup: trigger hover 时点击引用元素保持开启状态,防止菜单消失 TagInput.../0.37.2 Vue3 for Web 发布 0.10.2 版 Upload: 增加合并上传,支持国际化配置 Select:支持单选 valueDisplay 插槽 Popup: 新增 enter、leave...模式下聚焦样式 TagInput: 修复 breakline 模式下 clearIcon 样式重叠, 修复 autowidth 模式下 padding 不对称,修复超出滚动失效 详情见:https...,如有使用老 Swiper 组件需重新接入,⚠️存在不兼容更新 Swiper: 重构 swiper 组件 Table: 支持 onChange API  InputNumber: 支持 autoWidth...Tag: 修复样式文件冗余问题  Steps: 修复样式文件冗余问题 Image: 新增 shape 属性 详情见:https://github.com/Tencent/tdesign-miniprogram

    1.3K20
    领券