Comments (6)
We have a new version of that concept we're working on for the next release of Lit: https://github.com/Polymer/lit-html/blob/lit-next/packages/labs/src/frameworks/react/create-component.ts
It's not Lit specific, so you could use it with your classes.
from three-elements.
Right now, a somewhat clunky but workable workaround is to just use refs:
const Thingy = ({ speed = 1 }) => {
const rotate = (el) => (dt) =>
(el.object.rotation.x = el.object.rotation.y += speed * dt)
return (
<three-mesh ref={(el) => (el.onupdate = rotate(el))}>
<three-dodecahedron-buffer-geometry />
<three-mesh-standard-material color="hotpink" />
</three-mesh>
)
}
from three-elements.
This might also help:
https://github.com/webcomponents/react-integration
from three-elements.
In the meantime you might consider something like JSX-native-events. I talk about that a bit in this article in CSS-Tricks.
from three-elements.
I'll take a look, thanks!
from three-elements.
We now have an experimental @three-elements/proxy
package that can generate framework glue (here's a @three-elements/preact
package that uses it for Preact.) I'm relatively sure that this will help us sort out the React issue too, by providing some glue that transparently creates React Components wrapping three-elements tags (yeah, it's wild.)
from three-elements.
Related Issues (20)
- 'getThreeObjectBySelector' only works on light DOM HOT 1
- Custom camera issue HOT 1
- Directive collision HOT 1
- Projected pointer position isn't recalculated when pointer doesn't move
- BaseElement.setAttribute should track super.setAttribute succes/failure
- Generate TypeDoc and deploy it to website HOT 2
- 🐞 "pointerenter" and "pointerleave" should also be triggered on groups containing the raycasted object HOT 1
- Allow setting of "deg(n)" in numerical attributes
- RFC: Where to go with "ontick" and friends? HOT 10
- Set up CI test matrix to test three-elements against different versions of Three.js HOT 2
- Support bracket-less array syntax for "args"
- Convert repository into monorepo HOT 2
- 0.3 Release Checklist
- [core] Support MutationObserver behind a flag HOT 5
- [core] Similar to `tick` `late-tick` etc., also offer `mount` and `unmount` (or similar) HOT 2
- [core] Provide a way to customize which elements get created HOT 1
- [proxy] Improve proxy typings
- [core] Explore how we can integrate shaders and three-elements HOT 1
- [core] When handling click events, make sure a raycast has been performed this frame
- Restructure repository; create "extras" package
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from three-elements.