# butterfly-slim **Repository Path**: chameleon/butterfly-slim ## Basic Information - **Project Name**: butterfly-slim - **Description**: butterfly-slim - **Primary Language**: JavaScript - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 6 - **Forks**: 4 - **Created**: 2015-06-08 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # butterfly.js `butterfly.js`补全计划 ## 使用指南 请确保 [npm](https://www.npmjs.com/), [bower](http://bower.io/), [gulp](http://gulpjs.com/), [git](https://git-scm.com/) 已经安装完成。 1. `git clone` 到本地 2. `cd` 到 `git` 目录下,执行`npm install` 3. 执行`bower install` 4. 执行`gulp`,进行开发 ## 注意事项 目前只配置了 butterfly.js 必须的依赖包,如:underscore.js, backbone.js, zepto.js(这里用 zepto.js 代替 jquery), require.js, require-text.js。 **需要注意的是:由于 butterfly.js 使用的是 zepto.js ,但是 backbone.js 需要依赖 jquery。这里找到 backbone.js 对其依赖进行修改:** 找到`buile -> lib -> bower_components -> backbone -> backbone.js` ```javascript (function(root, factory) { // Set up Backbone appropriately for the environment. Start with AMD. if (typeof define === 'function' && define.amd) { define(['underscore', 'jquery', 'exports'], function(_, $, exports) { // Export global even in AMD case in case this script is loaded with // others that may still expect a global Backbone. root.Backbone = factory(root, exports, _, $); }); ``` 将`jquery ` 改成`zepto`: ```javascript define(['underscore', 'zepto', 'exports'], function(_, $, exports) { ``` ## 开发流程 ### 目录结构 ``` //目录结构 project ┣css **放置css文件 ┣js **放置js文件 ┃ ┣ ... ┃ ┗main.js **不同的view对应的js文件 ┣lib **所依赖的库和文件 ┣views **放置html文件,这里将每个html对应的页面称为view ┃ ┣ ... ┃ ┗main.html **首页html,这个必须存在,不能重命名 ┗index.html **主入口文件 ``` ### data-view 在 index.html 中,可以通过修改`data-view`的值使用不同的view模式: ```html
``` 在 butterfly.js 中出现`data-view`,就会被识别并加载其对应的 js 文件。如上:`data-view="$StackView"` 则会加载`$StackView`,这里的`$StackView`对应`buile -> lib -> js -> StackView.js` 在其他 view 中,给`data-view`赋值则会加载对应的 js 文件作为这个 view 的 `controller`: ```html