100% рдЪреМрдбрд╝рд╛рдИ рдХреЗ рд╕рд╛рде рдХреИрд╕реЗ рдХрд╛рдо рдХрд░реЗрдВ?
рдХреГрдкрдпрд╛ рдЕрдзрд┐рдХ рд╕реНрдкрд╖реНрдЯ рд░рд╣реЗрдВтАж
рдХреГрдкрдпрд╛ рдЕрдзрд┐рдХ рд╕реНрдкрд╖реНрдЯ рд░рд╣реЗрдВтАж
рдореИрдВрдиреЗ рдХреИрдирд╡рд╛рд╕ рдХреЛ рд╣реИрдВрдбрд╣реЗрд▓реНрдб рд╕реЛрдЪрдХрд░ рдмрдирд╛рдпрд╛ рдерд╛, рдЪреМрдбрд╝рд╛рдИ рдПрдХрджрдо рд╕рд╣реА рдереАред
рд▓реЗрдХрд┐рди рдЙрдиреНрд╣реЛрдВрдиреЗ рдПрдХ рдЯреИрдмрд▓реЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛, рдЗрд╕рд▓рд┐рдП рдЪреМрдбрд╝рд╛рдИ рдХрдо рд╣реЛ рдЧрдИред
рдЫрд╡рд┐ рджреЗрдЦреЗрдВ:
рд╕рд┐рдЧреНрдиреЗрдЪрд░ рд╕реНрдХреНрд░реАрди рдХреЛ рдХрд┐рд╕реА рднреА рд╕реНрдХреНрд░реАрди рд╕рд╛рдЗрдЬ рдХреЗ рд╣рд┐рд╕рд╛рдм рд╕реЗ рд░рд┐рд╕реНрдкреЙрдиреНрд╕рд┐рд╡ (рдЪреМрдбрд╝рд╛рдИ 100%) рдХреИрд╕реЗ рдмрдирд╛рдПрдВред
рдзрдиреНрдпрд╡рд╛рджред
(рдореИрдВ рдЖрдкрдХреА рдЫрд╡рд┐ рдирд╣реАрдВ рджреЗрдЦ рд╕рдХрддрд╛)
рдХреНрдпрд╛ рдбреЗрдореЛ рдХреЛрдб рдЖрдкрдХреЗ рдЯреЗрдмрд▓реЗрдЯ рдкрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ ?
рдПрдХ рд╣реА рдореБрджреНрджрд╛ рд╣реЛред
рдореИрдВрдиреЗ рдореЛрдмрд╛рдЗрд▓ рд╕реНрдХреНрд░реАрди рдореЗрдВ рдХреИрдирд╡рд╛рд╕ рдХреА рдЪреМрдбрд╝рд╛рдИ резрежреж% рдКрдВрдЪрд╛рдИ резрежреж% рд╕реЗрдЯ рдХреА рд╣реИ
рддрдм рдХреИрдирд╡рд╛рд╕ рд╕рд╣реА рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛
рдмреЛрд▓рдирд╛ рдЖрд╕рд╛рди рд╣реИред рд╣рдореЗрдВ рдХреЛрдб рджрд┐рдЦрд╛рдПрдВред
div
рд░реИрдк canvas
ред рдлрд┐рд░ ResizeObserver
рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ div
рдЖрдХрд╛рд░ рдкрд░рд┐рд╡рд░реНрддрди рд╕реБрдиреЗрдВред canvas
ред
рдпрд╣ рдЬрдЯрд┐рд▓ рд╣реИ рд▓реЗрдХрд┐рди рдХрд╛рдо рдХрд┐рдпрд╛ рд╣реИред рдореИрдВ useMeasure
рдХрд╛ react-use
рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВред рдирд┐рдЪреЗ рджреЗрдЦреЛ:
import React from 'react'
import { useMeasure } from 'react-use'
export default () => {
const [containerRef, { width, height }] = useMeasure();
return (
<div ref={containerRef} style={{ width: '100%', height: '100%' }}>
<canvas width={width} height={height} />
</div>
)
}
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
рдмреЛрд▓рдирд╛ рдЖрд╕рд╛рди рд╣реИред рд╣рдореЗрдВ рдХреЛрдб рджрд┐рдЦрд╛рдПрдВред