woowabros / woowahanjs Goto Github PK
View Code? Open in Web Editor NEW웹 어플리케이션 개발을 위한 JS프레임워크
웹 어플리케이션 개발을 위한 JS프레임워크
안녕하세요.
리듀서에서 공통 응답 헤더에 따라 실패 처리를 해주고 싶은데 방법을 모르겠네요.
예를 들면 아래와 같은 응답의 경우 요청에 자체를 성공을 한 것이지만 앱에서는 실패로 처리를 하여야 하는데요.
{
"header": {
"isSuccessful": false,
"message": "Error"
},
"data": null
}
리듀서의 onSuccess()를 정의하여 처리하려 하여도 리듀서의 소스를 보면 단순히 success 함수의 배열을 차례대로 호출만 해주고 있을 뿐 반환 값의 여부를 보아 실패 처리한다든가 하는 것이 불가능해 보여 방법이 있는 것인지 궁금합니다.
작성하는 동안 this.addError()를 쓰면 되겠다는 생각이 드네요..
또 리듀서의 소스를 보면 fail()과 finish()에서 this.removeAction()를 호출해주고 있습니다.
만약 onSuccess()에서 finish()를 호출하지 않는다면 직접 removeAction() 처리를 해주어야 하는 것인지요?
마찬가지로 onFail()에서 removeAction()를 직접 처리해주어야 하는지요?
그리고 앱 전역 이벤트로 error 이벤트가 발생했을 경우 레이어 팝업으로 표시를 해주려고 하는데요.
팝업 뷰를 정의했다고 했을 때 이 뷰를 동적으로 추가해주려면 어떻게 해야 하는지요?
뷰 내부에서는 this.addView()를 통해 가능한 것으로 보이는데요.
앱의 이벤트 핸들러에서는 어떤 방법이 예제나 설명을 뒤져보아도 보이지 않아서 질문 드립니다.
물론 뷰의 기능을 무시하고 직접 jQuery를 이용하여 조작하여도 되겠지만 방법이 있을지요?
설명에는 토스트 등을 보여주는데 사용할 수 있다고 되어 있는데 구체적인 방법을 알려주실 수 있을지요?
Woowahan.View.create('foo', {
virtualDOM: true
});
형태로 Template 기반의 VirtualDOM 기능 지원
앱 내의 뷰, 리듀서 등 프레임웍을 확장할 수 있도록 추가 기능의 미들웨어가 주입될 수 있는 아키텍처 구현
1.현상
woowahanjs 1대 버전에서 콜렉션(배열)을 랜더링 하여 리스팅 할때 화면이 비었다가 리스트가 랜더링 되어 나타나는 현상, 배열의 개수가 적을 때는 유심히 보아야 알아 차릴 수 있지만 많아지면 흰색(비어있는)화면이 눈에 선명하게 보인후
데이터 리스트가 랜더링되어 리스팅됨 깜빡 거리는 느낌으로 랜더링됨
2.짐작되는 원인
개발자도구 퍼포먼스 탭에서 살펴본 결과로는 미들웨어를 처리하는 부분에서 로드가 많이 걸리는 것으로 나타났음
(새로 추가한 미들웨어는 없는 상태에서 woowahanjs 1대 버전에서 발생)
저장소상에 server/demo.js 파일이 없습니다.
[email protected] demo-server /Users/sehan/Projects/WoowahanJS
node ./server/demo.js
module.js:440
throw err;
^
Error: Cannot find module '/Users/sehan/Projects/WoowahanJS/server/demo.js'
at Function.Module._resolveFilename (module.js:438:15)
at Function.Module._load (module.js:386:25)
at Function.Module.runMain (module.js:575:10)
at startup (node.js:160:18)
at node.js:445:3
npm ERR! Darwin 15.5.0
npm ERR! argv "/usr/local/Cellar/node/6.1.0/bin/node" "/usr/local/bin/npm" "run" "demo-server"
npm ERR! node v6.1.0
npm ERR! npm v3.8.6
npm ERR! code ELIFECYCLE
npm ERR! [email protected] demo-server: `node ./server/demo.js`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the [email protected] demo-server script 'node ./server/demo.js'.
npm ERR! Make sure you have the latest version of node.js and npm installed.
npm ERR! If you do, this is most likely a problem with the woowahanjs package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR! node ./server/demo.js
npm ERR! You can get information on how to open an issue for this project with:
npm ERR! npm bugs woowahanjs
npm ERR! Or if that isn't available, you can get their info via:
npm ERR! npm owner ls woowahanjs
npm ERR! There is likely additional logging output above.
npm ERR! Please include the following file with any support request:
npm ERR! /Users/sehan/Projects/WoowahanJS/npm-debug.log
안녕하세요 :)
현재 BROS에서 schema form-validator를 사용하는데
하나의 request form에 대해서, 특정 컬럼은 null을 허용하는 옵션을 주고싶습니다.
가능하면 추가해주십사 이슈 올려봅니다 ㅎㅎ
스키마에서 벨리데이션 처리시 기본으로 safe string 등을 지원.
ex. safe string, ...
블로그를 보던 중 해당 프레임워크를 알게되었습니다.
타입스크립트를 지원한다면 좋을 것 같습니다!
그리고 요새는 커밋이 좀 뜸하네요. 응원합니다! 국산 프레임워크!
events: {
'@submit form': 'onSubmit'
},
onSubmit(form) { ... }
onSubmit 핸들러의 form 객체에 checkbox 와 textarea 값이 정상적으로 전달되지 않음
현상
woowahanjs 1대 버전에서 woowahan-action-player를 import 하여 app.use(actionPlayer) 주입을 하는 경우에(직접 페이지에서 action-player를 사용하지 않아도) 페이지의 리스트가 커텐이 내려오듯 스르륵 하고 랜더링 되는 현상 데이터 개수가 많고 적음에 관계없이 현상이 발생함
짐작되는 원인
준호님께서 woowahan-action-player가 추가 되고 미들웨어 처리부분과 관련이 있을 거라고 짐작함
프로젝트에 설정된 WoowahanJS 소스와 이곳 Git에 정리된 예제들에서 사용한 변수명 naming convention에 의문이 있습니다. (convention이 맞지 않다고 인지함)
Woowahan.View에 대한 인스턴스 변수는 github에 정리된 예제를 보면 다음과 같이 camel case를 사용하는데, WoowahanJS내 코드를 보면 pascal case를 사용하고 있습니다.
const emptyView = Woowahan.View.create('EmptyView');
어떤 convention을 권장하는지 궁금합니다.
const app = Woowahan();
app.start({ route }, {
sharedComponent: [
{ view: Dialog, name: 'ModalDialog' },
{ view: Notify, name: 'Noti' }
]
});
Woowahan.View.create('myView', {
onComplete() {
this.sharedComponent.Noti('작업이 완료되었습니다.');
}
});
var key = this.dispatch(Woowahan.Action.create("actionName"))
this.cancel(key)...
DataBinding의 랜더러 역할을 할 플러그인을 생성하고 주입할 수 있는 구조 제공
안녕하세요.
우아한JS를 공부하고 있습니다.
레퍼런스를 보는 중에 깨진 링크가 있어 신고&문의 드립니다.
페이지 위치 : https://ibare.gitbooks.io/woowahanjs/view.html
메뉴 : View > 템플릿 > '프로젝트 환경 구성' 링크깨짐
깨진링크 : https://ibare.gitbooks.io/woowahanjs/project-setup.md
이상입니다. 수고하세요~
actions: {
'actionName': 'handler'
}
형태의 폼 구성시 @submit 인수로 폼 요소 전달이 안되는 문제 해결
안녕하세요.
라우팅 변경 전이나 후에 탐지할 수 있는 방법에 대해 마련되어 있지 않은 것 같아서..
router.js의 라우팅 콜백 함수 내에서 app에 route 이벤트를 발생시키도록 해 보면 괜찮을 것 같은데요.
woowahan.js의 Router.design()을 호출하는 부분에 this를 넘겨야 할 것 같긴 하지만요.
이게 필요한 이유가.. 로그인 상태에 따라서 특정 뷰에 접근을 제한하고 싶은 니즈가 있습니다.
이벤트 핸들러에서 라우팅 변경을 허용한다든지 거부할 수 있으면 좋겠고
혹은 promise를 반환하여 promise 결과에 따라 계속 진행한다든지 하면 좋을 것 같은데요.
현재는 레이아웃 뷰의 viewWillUnmount()에서 처리토록 하였는데 이것보단 라우팅 변경을 탐지할 수 있는 수단이 제공되면 좋을 것 같습니다.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.