UNPKG

ayano-utils

Version:
155 lines (118 loc) 3.21 kB
# Ayano <img src="./icon.png" alt="" style="width: 80px;"> ### About project name ayano is a character at [《目隐都市的演绎者》](http://bangumi.bilibili.com/anime/197?from=search&seid=13569365465150890532) ### Quik start ```bash npm install -g ayano ``` ```bash ayano init <name> cd <name> npm start ``` ### ayano-script ###### start ```bash ayano-script start //start app with a webpack devServer ``` ayano has inner webpack config file, you can use `--config -c [path]` to use custom config file ###### build ```bash ayano-script build // build app ``` ayano has inner webpack config file, you can use `--config -c [path]` to use custom config file ###### outputConfig ```bash ayano-script outputConfig ``` This command will out put innner config file to current dir ###### Proxy Add proxy settings to `package.json`, about config, to see [webpack devServer proxy](https://webpack.js.org/configuration/dev-server/#devserver-proxy) ### AyanoReact #### Start ```bash npm install --save ayano-react ``` #### Features ###### createApp ```javascript const options = { actions: {}, // redux actions, can be a object or function which is handled by redux-thunk reducers: <reducer>, // redux reducers pre reducers or combined reducers, history: history, // a history to create router -> default is hashHistory routers: [{ path: '/', component: Home, }] // a react-router-dom <Route></Route> component props array } const app = createApp(options); app.start(document.querySelector('#root')); app._store // store that is created; app._history // history that is used; app._actions // actions which is bind to dispatch ``` ###### connectApp ```javascript class App extends React.Component { constructor(props) { super(props) } render() { <div class="app"></div> } } const mapStateToProps = (state) => { return { app: state.app } } connectApp(mapStateToProps)(App) ``` - the `connectApp` will auto merge actions which is defined at createApp options and bind dispatch ###### buildConstants ```javascript const constants = buildConstants([{ key: "POSTS", values: ["ALL", "CREATE_EMPTY"] }, { key: "POST", values: ["SELECT", "UPDATE_VALUE", "FINISH_SAVE_POST", "FINISH_CHANGE_STATUS"] }], "@manage") // constants is { // POSTS: { // ALL: "@manage/POSTS/ALL", // CREATE_EMPTY: "@manage/POSTS/CREATE_EMPTY" // }, // POST: { // SELECT: "@manage/POST/SELECT" // ...... // } // } ``` ###### request ```javascript const apis = { users: { path:'/users', method: 'GET' }, user: { path: (data) => { return `/user/${data.id}` },// the data is which you pass in method: "GET" } host: 'https://xxx.xxx.xx' } const rq = request(apis); // @params // path: a path at apis or custom path // data : request data // method: request method // options: advance options rq('users').then(...) // it will request to https://xxx.xxx.xx/users rq('user', { id: 122 }).then(...) // it will request to https://xxx.xxx.xx/user/122 rq('/ayano') // it will request to https://xxx.xxx.xx/ayano because '/ayano' is not at apis ``` ### CHANGELOG #### 20171018 - 在request添加header的定义