Giter Site home page Giter Site logo

Custom tags about reagent HOT 13 OPEN

reagent-project avatar reagent-project commented on May 8, 2024
Custom tags

from reagent.

Comments (13)

 avatar commented on May 8, 2024 2

@Deraen
Let's say your server prepares some content that can be generated server side, like prepared info pages that are cached, or content from a CMS, and that content is supposed to contain some interactive elements,
then having the ability to just send data amd render that is much nicer than having to perform a clientside postprocessing step that walks the entire tree and replaces keyword with functions.

We currently do the latter and it is super messy :/

from reagent.

k2052 avatar k2052 commented on May 8, 2024

+1 I could really use this! Important enough to me that I am tackling it myself but I have limited experience with CLJS and Reagent so it will take sometime.

from reagent.

k2052 avatar k2052 commented on May 8, 2024

Not sure how idiomatic it is but I have a working solution in a custom-tags branch on my fork. k2052@9a6ab3b

Seems to not have broken anything (all tests still pass). Will make a PR as soon as I have some tests written and work out the most idiomatic API.

from reagent.

yogthos avatar yogthos commented on May 8, 2024

@k2052 any word on a pr? :)

from reagent.

galdolber avatar galdolber commented on May 8, 2024

This is an even bigger deal for react native. I'll prepare a PR

from reagent.

yogthos avatar yogthos commented on May 8, 2024

@galdolber πŸ‘

from reagent.

 avatar commented on May 8, 2024

Is there any progress on this?
Is there something holding the integration of the MR back?

We also need to render hiccup that was generated elsewhere and it would help a lot.

from reagent.

yogthos avatar yogthos commented on May 8, 2024

@holmsand this seems like it would be a nice addition.

from reagent.

Heliosmaster avatar Heliosmaster commented on May 8, 2024

Yeah this would be pretty rad! πŸ‘

from reagent.

cwervo avatar cwervo commented on May 8, 2024

Any update on this PR?

from reagent.

Deraen avatar Deraen commented on May 8, 2024

I don't yet understand why this is needed.

First comment mentions server-side rendering, but in that case, the app would be rendered as string to HTML, which wouldn't refer the component functions? What use case there is for sending hiccup from server to client?

What about ReactNative? Obviously Reagent already works there, what would this improve on that environment?

I'd prefer not introducing new abstractions, especially one with global state (atom), without good reason.

from reagent.

awb99 avatar awb99 commented on May 8, 2024

This feature would be very useful for me!

from reagent.

Deraen avatar Deraen commented on May 8, 2024

While I didn't mention this in Clojurist Together plans directly, I have some ideas on implementing this:

[As this affects how Reagent turns Hiccup to React elements and components,] I have some ideas on allowing users configure the Reagent Hiccup compiler, similar to what Hicada does. This would also allow introducing optional features which would break existing Reagent code, by making users opt-in to these. One case would be to make React component interop simpler.

This configuration will probably allow providing a function to convert keywords (or other values) to React elements, which will allow users to configure custom tags.

from reagent.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.