Tenho o seguinte componente Astro :
---
type Props = {
uuid: string;
};
const { uuid } = Astro.props;
---
<div class="my-feature" data-uuid={uuid} id="my-feature"></div>
<script is:inline src={import.meta.env.MY_SCRIPT}></script>
<script>
import { MyFeatureHelper } from '@/scripts/my-helper';
let myFeature;
const ref = document.getElementById('my-container');
myFeature = new MyFeatureHelper(ref as HTMLDivElement, {
uuid: this?.ref.uuid,
});
myFeaturer.build();
</script>
Preciso passar uuid
prop para a <script>
tag without define:vars
conforme descrito aqui porque então meu script será tratado como is:inline
e não poderei importar a classe JavaScript MyFeatureHelper
, da qual preciso.
Como posso ter acesso uuid
e usá-lo, por exemplo uuid: this?.ref.uuid
, usando o truque do atributo de dados ?
Como faço isso funcionar?
Veja a documentação do Astro , onde há um exemplo de como fazer isso com um componente web básico.
Alternativamente, o seguinte deve funcionar: