BoardList.vue 에서 가장먼저 실행되는 부분은 함수부분
mounted 부분이 먼저 실행되면서
하단의 board(pageNo)가 실행 => paging(totalcount)가 실행
쌤이 주신 파일 다시 넣었다.
페이징부분은 다시 살펴보자
pdf_5차 참고
p12 ~ Vuex 설치하기
[ Vuex ]
> npm install --save vuex
> npm install --save vuex-persistedstate
설치가 완료됐다면 아래처럼 package.json에서 확인할 수 있다.
src 아래 store 폴더 생성 > 내부에 store.js 파일생성
pdf에 있는 코드 붙여넣어주고 (로그인&로그아웃을 위해 필요)
* mutaion : Vuex 스토어에서 상태(state)를 변경하는 일련의 함수들을 정의하는 곳.
위의 경우 두개의 mutaion 정의,
setUser에서는 state 객체 내의 m_name 및 m_id 속성을 userInfo 객체의 값으로 업데이트.
logout에서는 state 객체 내의 m_name 및 m_id 를 null로 재설정.
mutaions 은 일반적으로 컴포넌트에서 호출되며, commit 메서드를 사용하여 호출
main.js에 store 추가
이제 LoginPage.vue 로 가서 input창과 로그인 버튼 만들어준다.
data설정은 아래처럼
store에서 가져와 m_name, m_id를 다시 같은 변수로 선언해준다.
로그인 버튼을 눌렀을 때 실행될 loginSumit() 함수를 만들어준다.
입력창에 값들을 넣고 alert로 실행시켜보면 입력값은 잘 잡아온다.
입력값들을 서버로 보내준다.
서버에서 map으로 잡아와 출력해보면
잘 잡아온다.
그런데 pw가 암호화 되어있어서 mapper를 수정해줘야 한다.
입력값들을 가지고가서 db와 비교후에 결과를 출력해보면
아래처럼 일치하는 결과값을 잘 가져와 출력한다.
아래 로직에 따라
* commit : mutaion 을 호출하는 메서드
로그인 성공하면(count값이 1이라면) boardList 페이지로 이동
이제 로그인했다면 아래처럼 boardList 페이지에 표시되도록 해준다.
store의 저장된 값을 불러온건데
=> Vuex 스토어의 상태를 로컬 스토리지에 저장, 이를 통해 페이지를 새로 고치거나 다시 열 때도 상태를 검색할 수 있다.
( vue에서의 session역할 )
pdf_p18 참고
로그인한 사용자에게만 글쓰기 버튼이 보이도록 설정해준다. (BoardList.vue)
data에 userInfo (m_name, m_id) 추가해준다.
이렇게 설정해주면 이제 m_name으로 불러올 수 있다.
포트번호 80으로 변경
mapper 앞에 static 빼줬다.
위의 경로에 맞춰서 mapper 폴더도 static 밖으로 빼줬다.
pdf 6차 참고 _ vue.config.js 설정하기 (p.3)
> spring boot + vue 프로젝트 합치기
전자정부 서버 연결해준다.
경로가 너무 길어서 바꿔줄건데
properties에서 아래 클릭해서 나온 경로를 넣어준다. (static까지의 경로**)
위처럼 경로에서 마지막에 static 빼먹으면 mapper파일이 날아간다.
이제 연결해줬으니 이클립스만 연결해주면 되는데
위의 경로설정때문에 mapper파일 외 다른 파일들도 함께 날아간듯 하다.
필요한 파일들 다시 넣어주고
main.js에서도 포트번호 80으로 수정
> npm run build 실행시키면
스프링부트만 구동해도 vs코드에서 npm run serve를 사용한 것 처럼 구동이 된다.
이제 jar로 만들어서 바로 실행이 가능하도록 해보자.
아래 경로로 이동후
> gradlew build
C:\eGovFrameDev-4.1.0-64bit\workspace\sep19\build\libs
파일 두개 확인하고
위의 0.0.1버전이 아니라
0.0.5 로 버전 변경해보자.
다시 cmd에
> gradlew build
해주면 아래처럼 jar 파일이 생긴다.
cmd에서 build의 libs까지 이동한 후에
> java -jar sep19-0.0.5.jar 실행시키면
이클립스에서 실행하지 않아도 서버 구동이 되면서
localhost 주소로 들어가보면 잘 실행된다.
또 다른 방법은 window - show view - others - gradle Tasks
0.0.6 버전 생성된거 확인할 수 있다.
여기까지의 단계를 개발이 끝났다고 하고
이걸 서버로 보내서 실행이 되는 것까지 확인하면 그 단계가 배포.
다시 원래대로 실행시키고 글쓰기 버튼 부분도 m_name 의 null값 여부에 따라 보이도록 해줬다.
이제 메뉴바도 수정해주자. (로그아웃 만들자) _ ( MenuPage.vue )
store에 저장해둔 userId가 null 이라면 (로그아웃상태) => join과 login이 보이게
store에 저장해둔 userId가 null 이 아니라면 (로그인상태) => myInfo와 logout이 보이게
이제 아래쪽에 로그아웃 method 만들어준다.
로그아웃 메뉴 누르면 사용자 정보를 null값으로 처리. (store.js의 logout이 실행된다.)
router-link는 빼버리고 아래처럼 click 기능으로 logout 함수가 실행되도록 넣어준다.
로그아웃을 누르면 confirm창이 뜨면서 login페이지로 이동한다.
'국비과정 > Vue' 카테고리의 다른 글
20231006 _[85일차]_01. Vue _ 로그인 이어서 (0) | 2023.10.06 |
---|---|
20231005 _[84일차]_01. Vue 관련 개념들 (0) | 2023.10.05 |
20230922 _[79일차]_01. Vue (4차)_게시판 댓글창 만들기 (0) | 2023.09.22 |
20230921 _[78일차]_01. Vue (4차)_게시판만들기3 (0) | 2023.09.21 |
20230920 _[78일차]_01. Vue (4차)_게시판만들기2 (0) | 2023.09.20 |