移動端
移動端 Web 開發
自動輪播效果
- HTML
- 輪播使用的標籤是 ul, ul 中的 li 默認是豎起來排列的, 經過 CSS 設置爲左浮動將他們橫向排列
- JS
- 爲了實現左右的循環輪播, 將第 1 張複製到最後, 將原來的最後複製到第 1 個以前, 這樣總的輪播是從第 2 個開始的
- 使用 zepto 庫, 使用 setInterval 定時器每一個一段時間使用 zepto 的 fx 動畫庫將 ul 平移(這是 left 屬性, 須要先將 ul 的 position 設置爲 relative), 最後的回調判斷是不是最後一張或者是第一張, 重置索引實現循環輪播
- 標識的設置
- 將全部標籤的 class 去掉, 在將當前的設置爲激活
node 安裝與配置
- 安裝 nvm (相似於 pyenv 管理多版本 node)
- nvm 命令
nvm install node
: 安裝最新版本的 nodejs
nvm install stable
: 安裝最新穩定的 nodejs
nvm ls
: 列出當前安裝的 nodejs 版本, 加星號爲當前正在使用的nodejs版本
nvm use ...
: 使用哪一個 nodejs 版本
- 安裝 nrm (用於管理 npm 安裝的默認源),
npm install -g nrm
nrm ls
: 列出全部可用的源, 其中加了 *
表示當前正在使用的默認源
nrm use taobao
: 將默認源轉爲 taobao
- 安裝模塊
- 使用 npm
npm install -g ...
: 全局模塊, 放在 /usr/local 下
npm install ...
: 本地模塊, 放在當前目錄下
- 使用 npm 的缺點很明顯, 速度慢
- 使用 yarn
npm install -g yarn
安裝 yarn
- 配置 yarn 源
yarn config set registry https://registry.npm.taobao.org --global
yarn config set disturl https://npm.taobao.org/dist --global
- 基本命令
npm install === yarn
-
npm install taco --save === yarn add taco
-
npm uninstall taco --save === yarn remove taco
npm install taco --save-dev === yarn add taco --dev
-
npm update --save === yarn upgrade
第三方庫
- zepto.js: 移動端的 jQuery, 與 jQuery 的思想不一樣, 它是分模塊的
React Native 安裝與簡單使用
- 安裝
- 配置好 node 環境
yarn add react-native-cli
- 使用
react-native init yourproject --version 0.44.3
- 注意: 當前的工做目錄下要沒有 yourproject 目錄; 必定要加上
--version 0.44.3
, 若是不加上去默認是生成最新版本的工程, 老的電腦可能由於報錯而沒法運行; 若是你使用的 zsh 安裝的 node, 那麼請在系統自帶的 Terminal 中設置啓動的 shell 爲登陸 shell, 由於 react-native 的一些操做須要打開 Terminal 執行 node相關命令, 主要就是執行 package.sh
, 不然模擬器會出現 bundle 之類的錯誤; 也能夠嘗試一下 react-native bundle --entry-file index.js --bundle-output ./ios/bundle/index.ios.jsbundle --platform ios --assets-dest ./ios/bundle --dev false
cd yourproject
react-native run-ios
XBuilderX 打包網站成 App
- 通常步驟
- 下載 XBuilder, 並註冊帳號
- 打開 XBuilder, 建立一個 H+ 項目
- 將作好的網站放進來
- 點擊 manifest.json 設置配置信息
- 右鍵項目目錄, 發行
- 提示
- 注意
- 在平時作移動端的 H5 App 時, 不要將前端的東西放到 App 上, 而是讓 App 指向一個網路連接, 不然必定會出現跨域這個坑爹的問題
- 下面談一談跨域的問題
- 現代的瀏覽器都提供了安全機制(Chrome 最爲嚴格, Firefox比較寬鬆), 在跨域訪問的時候若是出現 Origin: null 表示你只從本地打開的, 在服務器端的 response 中 Access-Control-Allow-Origin 中設置爲 null, 或者 *, 或者客戶端的域名便可, 可是若是須要 Cookie 和 Session 等狀態信息的話, 抱歉, 網上雖然有不少方法說 ajax 能夠跨域發送 cookie, 可是並非每一次, 每個人都那麼好運的; 若是服務器是 Django, 使用 corsheaders 組件也是沒有做用的。
- 網上提到要發送 Cookie, 須要在服務器端設置 Access-Control-Allow-Credentials = true, 在前端的 ajax 也要使用 withCredentials = true 才行
- 不過咱們也能夠換一種思路, 在移動 APP 的登錄界面上咱們放一個 form 表單, 表單的提交是沒有跨域問題的
vue
- 下載
yarn global add vue
yarn global add vue-cli
- 指令
- 生命週期
- 路由(vue-router)
- 父子組件傳值
- 過濾器
- .vue 定製的模板
- 模板渲染
- vue-resource: 發送 ajax 的 get, post, jsonp
- 全局配置
- 配置到 Vue 對象上, 如
Vue.http.options.root = "http://localhost:8080/"
Vue.http.options.emulateJSON = true
- 過渡動畫(主要是在元素出現和消失的時候, 配合 v-if 和 v-show)
- vue 自帶的(4 個節點 enter, leave-to, enter-active, leave-active)
- animate.css 第三方, vue 經過一些指令指定特定的 css
- 在過渡的不一樣節點定義鉤子函數, beforeEnter, enter, afterEnter
- beforeEnter: 設置默認樣式
- enter: 必定是這樣的結構, 定好了
enter(el, after){
// 強制要求
el.offsetWidth
// after 就是afterEnter函數, 在enter最後調用
after()
},
afterEnter(el){
this.flag = !this.flag
}
打包工具
webpack
- 下載
yarn global add webpack
yarn global add webpack-cli
- 經常使用命令
webpack entry.js output.js --mode [development|production]
webpack-dev-server
- 下載
yarn global add webpack-dev-server
- 經常使用命令
webpack-dev-server --hot --mode [development|production] --open --port 8080 --contentBase src
配置文件
- 在項目的根目錄下建立 webpack.config.js, 例如
const path = require('path');
const webpack = require('webpack');
module.exports = {
mode: 'development',
entry: path.resolve(__dirname, 'src/main.js'),
output: {
path: path.resolve(__dirname, 'dist'),
filename: 'bundle.js'
},
module: {
rules: [
{ test: /\.css/, use: ['style-loader', 'css-loader']},
{
test: /\.(jpg|jpeg|png|tiff|gif)/,
use: {
loader: 'url-loader',
options: {
limit: 8080
}
}
}
]
},
}
- 有了配置文件就能夠直接使用 webpack 或者 webpack-dev-server 命令
調試配置
- 下載安裝 ghostlab
- 下載 iTools 進行屏幕投影
vue 項目目錄結構
dist
src
App.vue: app 組件
api: 請求數據
config.js: 配置信息, 相似於 django 中的 settings.py
goods.js: 這裏只是舉了一個例子, 請求什麼數據建立對應的 js
components: 存放組件
common: 存放公共組件(好比輪播圖, 進度條)等到哪裏均可以用的組件, 與業務無關
recommend: 和 search, suggest, good-list 相似, 存放項目中耦合的組件, 有些組件很大, 可能就是一個頁面, 有一些是子組件, 都是與業務相關的組件
search:
suggest:
good-list:
main.js: 入口 js
router:
index.js 路由
store: vuex
static:
js
css
images
medias
libs: 第三方拷貝過來的
webpack.config.js
- 一個目錄只有一個組件, 在該目錄下存放該組件須要的資源