[Java Web programming] [Spring Boot + Vue.js] 게시판 만들기 - Toast UI Editor, Viewer

이번 포스팅은 게시글 작성을 위한 Toast UI Editor와 내용을 보여주는 Toast UI Viewer에 대해 알아보자

 

Toast UI Editor 컴포넌트

WYSIWYG 모드와 Markdown 모드를 지원하는 에디터 구현

 

구현

1. 의존성 설치

$ npm i @toast-ui/vue-editor

2. 컴포넌트 구현

 
 
<template>
 
<div>
 
<Editor
 
ref="toastEditor"
 
initialEditType="wysiwyg"
 
height="500px"
 
previewStyle="vertical"
 
/>
 
</div>
 
</template>
 
 
 
<script>
 
import { Editor } from '@toast-ui/vue-editor'
 
import 'codemirror/lib/codemirror.css' // codemirror style
 
import '@toast-ui/editor/dist/toastui-editor.css' // Editor style
 
 
 
export default {
 
components: {
 
Editor,
 
},
 
methods: {
 
getContent() {
 
return this.$refs.toastEditor.invoke('getMarkdown')
 
},
 
setContent(content) {
 
this.$refs.toastEditor.invoke('setMarkdown', content)
 
},
 
},
 
}
 
</script>
  • ref 속성을 통해 Toast UI Editor 객체에 접근하여 다양한 함수를 사용 가능하다.
  • invoke('함수명') 을 통해 해당 객체의 함수를 사용할 수 있다.
  • getContent() 는 에디터에 작성된 내용을 리턴하는 함수로 상위 컴포넌트에서 쉽게 접근하기 위해 구현한 함수이다.
  • setContent() 는 에디터에 인수로 받은 값을 설정하는 함수로 상위 컴포넌트에서 쉽게 접근하기 위해 구현한 함수이다.

사용 방법

게시판 작성 컴포넌트에서 에디터 컴포넌트를 import 하여 사용한다.

 
 
<template>
 
<Editor ref="editor" />
 
</template>
 
 
 
<script>
 
import Editor from '@/components/common/Editor'
 
 
 
export default {
 
components: {
 
Editor,
 
},
 
methods: {
 
async save() {
 
var content = this.$refs.editor.getContent()
 
},
 
},
 
}
 
</script>
  • ref 속성을 통해 Editor 컴포넌트의 getContent() 함수에 접근할 수 있다.

동작 확인

 

 

경축! 아무것도 안하여 에스천사게임즈가 새로운 모습으로 재오픈 하였습니다.
어린이용이며, 설치가 필요없는 브라우저 게임입니다.
https://s1004games.com

Toast UI Viewer 컴포넌트

게시글 내용을 보여주기 위한 컴포넌트이다.

 

구현

 
 
<template>
 
<div>
 
<Viewer ref="toastViewer" height="500px" />
 
</div>
 
</template>
 
 
 
<script>
 
import { Viewer } from '@toast-ui/vue-editor'
 
import 'codemirror/lib/codemirror.css' // codemirror style
 
import '@toast-ui/editor/dist/toastui-editor.css' // Editor style
 
 
 
export default {
 
components: {
 
Viewer,
 
},
 
methods: {
 
setContent(content) {
 
this.$refs.toastViewer.invoke('setMarkdown', content)
 
},
 
},
 
}
 
</script>
  • Editor 컴포넌트와 동일하게 ref 속성을 통해 Toast UI Viewer 객체에 접근하여 다양한 함수를 사용할 수 있다.
  • setContent() 는 에디터에 인수로 받은 값을 설정하는 함수로 상위 컴포넌트에서 쉽게 접근하기 위해 구현한 함수이다.

사용 방법

게시글 상세 컴포넌트에서 뷰어 컴포넌트를 import 하여 사용한다.

 
 
<template>
 
<div style="height:300px;">
 
<Viewer ref="viewer" /><br />
 
</div>
 
</template>
 
 
 
<script>
 
import Viewer from '@/components/common/Viewer'
 
import { getBoardDetailAPI } from '@/api/index'
 
 
 
export default {
 
components: {
 
Viewer,
 
},
 
mounted() {
 
getBoardDetailAPI({
 
params: {
 
docNo: this.$route.query.docNo,
 
},
 
})
 
.then(response => {
 
this.$refs.viewer.setContent(response.data.content)
 
})
 
.catch(error => {
 
console.log(error)
 
})
 
},
 
}
 
</script>
  • API를 통해 해당 게시글 내용을 받아 Viewer 컴포넌트에 내용을 설정한다.

동작 확인

 

 

 

[출처] https://dev-jsk.tistory.com/131

 

본 웹사이트는 광고를 포함하고 있습니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
번호 제목 글쓴이 날짜 조회 수
206 [Java Web programming] [Spring] WebFlux란 무엇인가? - 개념(특징), MVC와 비교, 사용 이유 file 졸리운_곰 2023.07.18 78
205 [Java Web programming] [Spring Boot + Vue.js] 게시판 만들기 - 에러 file 졸리운_곰 2023.04.07 72
204 [Java Web programming] [Spring Boot + Vue.js] 게시판 만들기 - 버튼 file 졸리운_곰 2023.04.07 82
» [Java Web programming] [Spring Boot + Vue.js] 게시판 만들기 - Toast UI Editor, Viewer file 졸리운_곰 2023.04.07 67
202 [Java Web programming] [Spring Boot + Vue.js] 게시판 만들기 - Tooltip, Snackbar file 졸리운_곰 2023.04.07 80
201 [Java Web programming] [Spring Boot + Vue.js] 게시판 만들기 - 날짜, 시간, 날씨 file 졸리운_곰 2023.04.07 76
200 [Java Web programming] [Spring Boot + Vue.js] 게시판 만들기 - 구성 졸리운_곰 2023.04.07 77
199 [Java Web programming] [Spring Boot + Vue.js] 게시판 만들기 - 소개 file 졸리운_곰 2023.04.07 85
198 [Java Web programming] SpringBoot, Vue 연동하기 file 졸리운_곰 2023.01.30 99
197 [JSP] [jstl ] case when 중첩 방법 file 졸리운_곰 2023.01.24 69
196 [JSP] intelliJ로 JSP 프로젝트 생성, Servlet 실행해보기 file 졸리운_곰 2022.12.31 95
195 [JSP} Jsp 커스텀 태그라이브러리(Custom Tag Library Descriptor) 생성 및 사용 졸리운_곰 2022.12.07 90
194 [JSP] JSP 커스텀 태그(Custom Tag) - 태그파일 file 졸리운_곰 2022.12.07 78
193 [Java Web programming] Velocity 사용하기 졸리운_곰 2022.08.11 89
192 [java html template engine] [Velocity] velocity 기본 문법 file 졸리운_곰 2022.08.10 90
191 [Java Web 프로그래밍] SPRING BOOT SSO 자료 정리 file 졸리운_곰 2022.07.27 113
190 [Spring] 스프링 tiles 사용하기! file 졸리운_곰 2021.10.17 108
189 [JSP][Java] [JSP] JSP 문법 구조 / include를 활용해 layout 나누기 file 졸리운_곰 2021.09.09 89
188 [SpringBoot] 타임리프(Thymeleaf) Thymleaf for template engine file 졸리운_곰 2021.09.05 77
187 [스프링부트] Spring Boot + Thymeleaf CRUD Example file 졸리운_곰 2021.09.03 76
대표 김성준 주소 : 경기 용인 분당수지 U타워 등록번호 : 142-07-27414
통신판매업 신고 : 제2012-용인수지-0185호 출판업 신고 : 수지구청 제 123호 개인정보보호최고책임자 : 김성준 sjkim70@stechstar.com
대표전화 : 010-4589-2193 [fax] 02-6280-1294 COPYRIGHT(C) stechstar.com ALL RIGHTS RESERVED