# View

* Life cycle

## контекст рендеринга

Рендеринг шаблонов в **RAD.js** всегда происходит в контексте **View**.

### контекст Views

Рендеринг шаблона любой View происходит в ее контексте, это значит что вы в самом шаблоне можете в любой момент обратиться к **this** и выполнить любой метод вью или получить значение свойства экземпляра вашей View.

```ejs
<%
	/* обращение к любому свойству View */
	var criteria = this.criteria;
	/* выполнение любого метода экземпляра View */
	var data = this.filterData(criteria);
%>
<div><%= data %></div>
```

### components context

В том случае если вы используете компоненты в вашем шаблоне внутри них контекст сохраняеться. То есть **this** внутри функции компонента сохраняеться как ссылка на View в шаблон которой вставлен компонент.

> Несмотря на то что вы можете использовать контекст для передачи данных в компонент, делать это не рекомендуеться. Так как может повлиять на возможность переиспользования кода и нарушает его проздачность. Крайне рекомендуеться передавать данные в компонент через [атрибуты](). Например: 
> 
> ```ejs
> 	<x-sidemenu list="<%= this.menuContent %>" permission="<%= this.getUserPermission() %>" />
> ```

