zoukankan      html  css  js  c++  java
  • 移动端

    移动端

    移动端 Web 开发

    自动轮播效果

    • HTML

      1. 轮播使用的标签是 ul, ul 中的 li 默认是竖起来排列的, 通过 CSS 设置为左浮动将他们横向排列
    • JS

      1. 为了实现左右的循环轮播, 将第 1 张复制到最后, 将原来的最后复制到第 1 个之前, 这样总的轮播是从第 2 个开始的
      2. 使用 zepto 库, 使用 setInterval 定时器每个一段时间使用 zepto 的 fx 动画库将 ul 平移(这是 left 属性, 需要先将 ul 的 position 设置为 relative), 最后的回调判断是否是最后一张或者是第一张, 重置索引实现循环轮播
      3. 标识的设置
        • 将所有标签的 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
        • 基本命令
          1. npm install === yarn
            • npm install taco --save === yarn add taco
            • npm uninstall taco --save === yarn remove taco
          2. npm install taco --save-dev === yarn add taco --dev
            • npm update --save === yarn upgrade

    第三方库

    • zepto.js: 移动端的 jQuery, 与 jQuery 的思想不同, 它是分模块的

    React Native 安装与简单使用

    • 安装

      1. 配置好 node 环境
      2. yarn add react-native-cli
    • 使用

      1. 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
      2. cd yourproject
      3. react-native run-ios

    XBuilderX 打包网站成 App

    • 一般步骤

      1. 下载 XBuilder, 并注册账号
      2. 打开 XBuilder, 创建一个 H+ 项目
      3. 将做好的网站放进来
      4. 点击 manifest.json 设置配置信息
      5. 右键项目目录, 发行
    • 提示

    • 注意

      1. 在平时做移动端的 H5 App 时, 不要将前端的东西放到 App 上, 而是让 App 指向一个网路链接, 否则一定会出现跨域这个坑爹的问题
      2. 下面谈一谈跨域的问题
        1. 现代的浏览器都提供了安全机制(Chrome 最为严格, Firefox比较宽松), 在跨域访问的时候如果出现 Origin: null 表示你只从本地打开的, 在服务器端的 response 中 Access-Control-Allow-Origin 中设置为 null, 或者 *, 或者客户端的域名即可, 但是如果需要 Cookie 和 Session 等状态信息的话, 抱歉, 网上虽然有很多方法说 ajax 可以跨域发送 cookie, 但是并不是每一次, 每一个人都那么好运的; 如果服务器是 Django, 使用 corsheaders 组件也是没有作用的。
        2. 网上提到要发送 Cookie, 需要在服务器端设置 Access-Control-Allow-Credentials = true, 在前端的 ajax 也要使用 withCredentials = true 才行
        3. 不过我们也可以换一种思路, 在移动 APP 的登陆界面上我们放一个 form 表单, 表单的提交是没有跨域问题的

    vue

    • 下载

      • yarn global add vue
      • yarn global add vue-cli
    • 指令

    • 生命周期

    • 路由(vue-router)

    • 父子组件传值

    • 过滤器

    • .vue 定制的模板

    • 模板渲染

    • vue-resource: 发送 ajax 的 get, post, jsonp

    • 全局配置

      • 配置到 Vue 对象上, 如
        1. Vue.http.options.root = "http://localhost:8080/"
        2. Vue.http.options.emulateJSON = true
    • 过渡动画(主要是在元素出现和消失的时候, 配合 v-if 和 v-show)

      1. vue 自带的(4 个节点 enter, leave-to, enter-active, leave-active)

      2. animate.css 第三方, vue 通过一些指令指定特定的 css

      3. 在过渡的不同节点定义钩子函数, beforeEnter, enter, afterEnter

        • beforeEnter: 设置默认样式
        • enter: 一定是这样的结构, 定好了
        
        enter(el, after){
          // 强制要求
          el.offsetWidth
          // after 就是afterEnter函数, 在enter最后调用  
          after()
        },
        
        • afterEnter:
        
        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
    
    • 一个目录只有一个组件, 在该目录下存放该组件需要的资源
  • 相关阅读:
    200. Number of Islands(DFS)
    DoubleDQN---tensorflow实现
    133. Clone Graph(图的复制)
    python deque
    136. Single Number(位运算)
    C++中位运算
    anacoda 安装默认源中没有的包
    kali系统安装图文教程
    C#基础|初探反射
    一般处理程序(ashx)和页面处理程序(aspx)的区别
  • 原文地址:https://www.cnblogs.com/megachen/p/11130681.html
Copyright © 2011-2022 走看看