v7 is a complete rewrite of the library. It addresses many long-standing issues in v5 and v6 limited by legacy architecture decisions. The most notable results of this redesign are:
- 🐎 Performance: minimize the overhead of React, offer the same fast and smooth interaction as the native library
- 🏗 Lightweight: the ESM build size is reduced from 219k to 57k
- Predictability: Components behave the same as their mapbox counterparts. Props are mapped 1:1 from the native options wherever appropriate. Almost all imperative APIs (
fitBoundsetc.) can now be called directly without breaking the React binding.
- 🚀 Compatibility: first and third-party plugins! Directly use mapbox-gl-draw, mapbox-gl-geocoder, to name a few.
- 📄 TypeScript compliant: the code base is now entirely written in TypeScript, and all types can be imported.
⬆️ Visit the upgrade guide if you are trying to upgrade from v5 and v6.
- ➕ Add mapLib API (#1703)
- 👌 Support inline styling for all components (#1702)
- 🔨 Refactor Mapbox class (#1701)
- 👌 Improve typing (#1695)
- ⚡️ [v7] Fix popup className update in mapbox v1/maplibre (#1694)
- [v7] Fix double controls in strict mode (#1678)
- [v7] Fix AttributionControl prop typo (#1679)
- [v7] Handle unmount order (#1676)
- 🔀 [v7] Fix synchronization during transition (#1675)
- ⚡️ [v7] Update MapRef (#1674)
- 🛠 [v7] Bug fixes (#1673)
- 🔀 [v7] Fix resize synchronization (#1670)
- [v7] Add fog, light, terrain props (#1669)
- 👍 [v7] support global settings with MapProps (#1668)
- [v7] Clean up typings and expose more utility types (#1667)
- ⬇️ Drop flow types support (#1666)
- ⚡️ Update
- ⚡️ Update
- [v7] utility hooks (#1663)
- [v7] Add Layer and Source (#1657)
- [v7] Control components (#1656)
- [v7] Marker and Popup (#1655)
- [v7] Map component (#1652)
- Typescript dev setup