set

The @set tag allows you to define local variables within the template scope or mutate the value of an existing variable.

  • It is an inline tag.
  • It accepts the variable name as the first argument and its value as the second argument.
@set('title', 'AdonisJS - A fully featured framework')

Following is the compiled output

let title = 'AdonisJS - A fully featured framework';

Re-defining the same variable will update the existing value.

@set('title', 'AdonisJS - A fully featured framework')
@set('title', 'AdonisJS - About page')
let title = 'AdonisJS - A fully featured framework';
title = 'AdonisJS - About page';

The @set tag can also update the properties on an existing variable. The behavior is similar to the lodash.set method.

@set(post, 'title', 'New title')
@set(post, 'author.name', 'Virk')