Mutations

Edge allows you to define local variables or mutate the value of an existing property using the @set tag.

Ideally, it is best to avoid too many inline local variables and pre process your data before passing it to the template.

Declare the value

The first time you use @set tag, we will declare a let variable.

@set('username', 'virk')

Compiled output

let username = 'virk'

Redeclaring the same variable again will just update the existing value.

@set('username', 'virk')
@set('username', 'romain')

Compiled output

let username = 'virk'
username = 'romain'

Mutate properties

The @set tag can also be used to mutate the properties of an existing object. For example.

@set(post, 'title', 'This is the new title')

In the above scenario, the value of post.title will be updated. You can also update nested values.

@set(
post,
'author.avatar',
await getAvatar(post.author.email)
)
<img src="{{ post.author.avatar }}" />