작성
·
397
0
<h5>@AddStr("1234")</h5>
<h6>@AddStr("5678")</h6>
<p>P 태그</p>
<span>SPAN 태그</span>
<button @onclick="@(e => AddStr("아멘"))">눌러보기</button>
상기와 같이 태그를 작성한 경우,
실행 후 button을 클릭하면 h5, h6에 연결한 함수들 까지 같이 실행되어 Console에 찍힙니다. 그 이유를 모르겠네요. 설명 부탁드립니다.
물론 함수는 아래와 같이 정의했습니다.
private string AddStr(string p1)
{
string strget = p1 + " 대한민국 ^^";
Console.WriteLine(strget);
return strget;
}
답변 1
0
이렇게 생각하시면 됩니다.
public string
AddStr 로 하셨기 때문에 저 값은 함수보다는 변수에 가깝습니다.
버튼에서 람다 식으로 AddStr 을 실행 시키고 나면 변수에 저장되어 있는 현재 값이 업데이트가 되고 블레이저는 C#이 붙은 지점을 새롭게 작성합니다. 그때 <h5>@AddStr("1234")</h5> 이라고 적어주셨는데 이 코드의 뜻은 "페이지가 렌더링 될때 마다 Addstr에 1234라는 값을 넣고 변수에서 처리한 값을 h5 태그 안에 출력한다!" 입니다. <h6> 안도 마찬가지로 생각해 주시면 됩니다.
즉, 버튼을 누를 때 마다 Addstr 값이 업데이트 되고 이를 감지한 블레이저에서 페이지를 다시 렌더링 하기 때문에 h5및 h6에 있는 변수가 계속해서 실행되는 것입니다.