React로 설문 조사 시스템을 열심히 만들었어요.
4922 단어 ReactJavaScript
평소 DB, 사베이사이드, 클레안 동쪽의 디자인, 설치, 활용만 맡았는데, 이 글에서 리액트로 개발한 시스템을 소개하고 싶습니다.
만든 물건
설문조사 시스템survey-designer-js을 제작해 회사 내에서 사용했다.또 OSS로 창고에 공개했다.
다음과 같은 기능을 갖추고 있다.
브라우저 지원
편집기: IE11 이상, 현대 브라우저
응답 화면: IE9 이상, 현대 브라우저
왜 했어요?
다른 활용할 수 있는 설문 시스템이 있었으면 좋겠지만, 다른 개념이 있는 시스템은 발견되지 않아 직접 만들기로 했다.
특징·시간 등
사용자 정의를 위해 HTML 및 jQuery 사용 가능
필수 조건으로 HTML과 jQuery 등을 통해 사안별로 맞춤형 구조가 필요하지만, HTML과 jQuery를 사용하면 리액션을 직접 사용할 수 없다.따라서 화면에 대답하는 페이지 앞의 구성 요소는 React를 uncontrolled component로 렌더링하고 렌더링한 후plain의 자바스크립트로 추가 제어를 합니다.이후 엔지니어는 JavaScript 처리를 추가하거나 HTML을 덮어쓸 수 있습니다.
페이지를 이동하거나 항목을 선택하더라도 설문지를 훼손하지 마십시오.
설문조사를 했다면 페이지의 순서를 바꾸거나 선택의 순서를 바꿀 수도 있다.브랜치 조건 등에서 질문에 대한 참조를 설정하면 이동할 때도 자동으로 따라갑니다.
이것은 질문 번호 등 참조가 있는 값이 아니라 모두 ID 참조로 해결된다.또한 같은 구조를 사용하여 HTML에 나타나는 문자열 변환 메커니즘을 실현할 수 있다.
두 번째 예에서 사용자는 {2-1-1.answer}을 입력했지만 내부는 프로젝트 2-1-1의 ID로 변환되었습니다.
{{2-1-1.answer}} → {{cjbcdi4ct000i3h77sqlldv77.answer}}
이렇게 들면 미리보기에서render에서 다시 뜯기 2-1-1 출력으로 전환할 수 있고 대답할 때 실제 사용자의 대답을 표시할 수 있습니다.
기존 문제의 배치를 유연하게 맞춤형으로 만들고 싶다
이것은 개발자 모드에서만 유효하지만 HTML 자체를 편집할 수 있습니다.이 편집 기능을 사용하면 판면 디자인을 자유롭게 할 수 있다.
이 편집기는 Codemirror를 사용합니다.
JavaScript로 추가 처리
페이지 단위로 JavaScript를 설정합니다.통상 준비되지 않은 기능을 추가할 수 있고, 복잡한 validation과 외부와의 통신 등도 여기에 기재할 수 있다.
데이터의 검증과 프로젝트의 디스플레이 제어가 너무 많아서 설정하기가 매우 힘들다
Excel로 데이터를 입력할 때 같은 데이터를 많이 만드는 것은 간단하지만 웹 시스템으로 입력하면 입력이 번거롭다는 말을 자주 듣는다.이 조사 시스템의 편집기도 같은 일이 발생할 수 있다는 것을 알기 때문에 데이터의 검증과 프로젝트의 디스플레이 제어에 전자 표handsontable를 가져왔다.
하지만 아래 부분은 상당히 힘들다.
첫 번째는 연기 문제다.이것은 React가 속성을 업데이트한 후에 다시 그리기 때문에handsontable의 모든 칸이 업데이트되는 문제입니다.대책으로 다음과 같은 2가지를 취했다.
두 번째는 사용자의 편의를 위해 고생하는 것이다.
엔지니어가 없는 상태에서 표를 맞춤형으로 만들고 싶어요.
질문 형식으로 표 형식이 있지만 UI로 질문을 정의하는 콘셉트로 설문 시스템을 만들기 때문에 HTML을 쓰게 하지 않는다.WYSIWYG 편집기TinyMCE는 표 부분에만 한정되어 사용자 정의가 가능합니다.
엔지니어가 사용하는 편집기의 개발 효율을 높이고 싶다
Codemirror를 사용했기 때문에 이른바 단축키와 자동 충전 기능을 간단하게 편입할 수 있다.다음은 자동 보완 기능을 사용하여 창 요소를 자동으로 보완하는 예이다.
최후
React의 강좌에서 많은 것들이 간단한 설문조사 시스템을 채택했지만 진정으로 만들어진 것은 거의 없다고 생각합니다.MIT 라이선스로 GiitHub에 공개되어 있으니 어떻게든 사용해 보세요.
누가 서버 쪽 좀 만들어줄래요?
Reference
이 문제에 관하여(React로 설문 조사 시스템을 열심히 만들었어요.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/jirokun/items/c4cbf9b5b2480d4755a9
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(React로 설문 조사 시스템을 열심히 만들었어요.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/jirokun/items/c4cbf9b5b2480d4755a9텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)