저는 현재 ReactJS 프런트 엔드가있는 레일즈를 사용하고 있습니다.반응 레일이있는 눈에 잘 띄지 않는 JS
React.render(
React.createElement(CommentBox, {url: "/demo"}),
document.getElementById('content')
);
</script>
을가 완벽하게 작동이 구성에서 : 나는이 스크립트 태그 아래에 index.html.erb에 앉아있다, 그러나, 적절한 .js.jsx 파일에 내 JS의 대부분을 가지고있다.
나는 평범한 "Rails Way"가 방해가되지 않는 JS이지만, 그렇게 힘든 시간을 보내고 있습니다. 위 코드를 주 .js 파일로 옮기면 content 요소가 존재하기 전에로드되고 아무 것도 렌더링되지 않습니다.
실제 레일은 눈에 잘 띄지 않는 JS를위한 특별한 보석을 제공하지만 실제로 두 가지 문제가 있습니다. 첫째, 문서가 실제로 URL 태그를 부착하는 방법을 참조하지 않기 때문에이 작품의도는 (오류, 그냥 아무것도 렌더링하지 않음) :
<% react_component('CommentBox', url: '/demo') %>
<div data-react-class="CommentBox" data-react-props="url: /demo" />
더 큰 문제는 그러나,이다 끝까지 react- 그 ujs gem 작업은 body close 태그 앞에 자동으로 수백 줄의 JavaScript를 포함시키는 것입니다. 이것은 내가 시작했던 네 가지 임베디드 라인보다 덜 눈에 띄지 않거나, 그것을 뛰어 넘는 것으로 느껴지지 않습니다.
첫 번째 문제를 해결할 수 있다고 가정 할 때 왜이 방법이 더 좋을지 모르는 이유가 무엇입니까?
메인 .js 파일로 옮겨서 렌더링하는 방법이 있습니까? 전용 .js 파일로 옮기고 컨텐트 태그 다음에 호출 할 수는 있지만 자산 파이프 라인을 망쳐 놓고 네 줄의 임베디드 스크립팅을 다른 전체 파일 호출로 바꿉니다.
레일 커뮤니티의 절반은 이단적인 스크립팅을 이단이라고 부르지 만, 가장 효율적인 솔루션처럼 계속 찾고 있습니다.
이것은 허용 된 대답이어야합니다. –