多端兼容配置

标签

<!-- 一般标签 -->
body ———— page
div,ul, li, table,tr,td ———— view
span,b,i,font ———— text
a ———— navigator
img ———— image

js对象

APP和小程序无 document、xmlhttp、cookie、window、location、navigator、localstorage、websql、indexdb、webgl

对于基于js对象的第三方库,JQuery也不支持

vue语法

v-html:小程序不支持

小程序语法

<!-- 不遵循vue语法 -->
<view id="item-{{id}}"></view>

处理跨域

  1. egg-cors

    // 安装egg-cors包
    npm i egg-cors --save // 在plugin.js中设置开启cors
    exports.cors = {
    enable: true,
    package: 'egg-cors',
    }; // 在config.default.js中配置
    config.security = {
    domainWhiteList: [ '前端网页托管的域名' ],
    };
  2. 配置webpack-dev-server代理

    // vue.config.js
    module.exports = {
    devServer: {
    proxy: {
    '/api': {
    target: 'https://api-remote.xxxx.com',
    pathRewrite: {
    '^/api': '/'
    }
    }
    },
    }
    }
    • mock

      文档: https://github.com/nuysoft/Mock/wiki

      借助mocker-apimockjs这两个工具,直接配置devServerbefore选项即可

      // vue.config.js
      const webpackApiMocker = require('mocker-api') module.exports = {
      devServer: {
      before (app) {
      webpackApiMocker(app, path.resolve('./mock/index.js'))
      }
      }
      } // mock/index.js
      const Mock = require('mockjs') const Random = Mock.Random
      const mock = Mock.mock const proxy = {
      'GET /api/user/list': mock({
      'array|3': [
      {
      id: 1,
      username: 'kenny',
      sex: 'male'
      }
      ]
      }),
      'POST /api/login/account': (req, res) => {
      return res.json({
      status: 'ok',
      data: {
      id: Random.id(),
      userName: Random.cname(),
      city: Random.city()
      }
      })
      }
      } module.exports = proxy
    • public-path

      // 1. 将`publicPath`这项配置拿出来单独放在一个配置文件中,比如`project-config.js`
      const projectName = 'xxx' // 当前工程名,此处自由发挥即可
      const isDev = isDev() // 是否为本地开发环境,此处自由发挥即可
      const CDN_HOST = process.env.CDN_HOST // build时指定的CDN域名
      const APP_ENV = process.env.APP_ENV // build时指定的自定义环境 module.exports = {
      publicPath: isDev
      ? '/'
      : `//${CDN_HOST}/static/${projectName}/${APP_ENV}/`,
      } // 2. 其次,我们fork了一版官方的uni-app源码,并对@dcloudio/vue-cli-plugin-uni/index.js做了点改动
      // @dcloudio/vue-cli-plugin-uni/index.js#L30
      // 获取本地的project-config配置
      module.exports = (api, options) => {
      const projectConfig = require(api.resolve('project-config')) Object.assign(options, {
      outputDir: process.env.UNI_OUTPUT_TMP_DIR || process.env.UNI_OUTPUT_DIR,
      assetsDir
      }, vueConfig, {
      // 重新对publicPath进行覆盖
      publicPath: process.env.NODE_ENV === 'production' ? projectConfig.publicPath : '/'
      })
      }
  3. uniapp推荐方式

    // manifest.json
    {
    "h5": {
    "devServer": {
    "proxy": {
    "/api": {
    "target": "https://api-remote.xxxx.com",
    "pathRewrite": {
    "^/api": "/"
    }
    }
    }
    }
    }
    }

UniApp学习-多端兼容 & 跨域的更多相关文章

  1. 学习笔记:AJAX 跨域问题

    学习笔记:AJAX 跨域问题 AJAX 跨域是浏览器的问题. 只要 xhr 请求,不同的域名就会出现 AJAX 跨域问题. JSONP 是一要简单方式,但是有很多弊端,需要修改服务端代码. JSONP ...

  2. php服务端允许跨域访问

    >>php服务端允许跨域访问<< >>同源策略和跨域解决方案<<

  3. asp.net core webapi 服务端配置跨域

    在前后端分离开发中服务端仅仅只为前端提供api接口,并且前后端往往单独部署,此时就会出现浏览器跨域问题.asp.net core提供了简单优雅的解决方案. 在startup文件的Configure添加 ...

  4. php 服务端允许跨域访问

    加上需要允许跨域访问,配置如下(一下配置内容前不允许有其他任何输出操作): //设置允许跨域的 请求源地址//方式一:header("Access-Control-Allow-Origin: ...

  5. Web前端学习笔记之前端跨域知识总结

    0x00 前言 相信每一个前端er对于跨域这两个字都不会陌生,在实际项目中应用也是比较多的.但跨域方法的多种多样实在让人目不暇接.老规矩,碰到这种情况,就只能自己总结一篇博客,作为记录. 0x01 什 ...

  6. PHP服务端支持跨域

    跨域 由于浏览器的同源策略,导致浏览器页面访问非同源(协议.域名.端口任一不同)服务器产生跨域问题! PHP服务端配置支持跨域: // 指定允许其他域名访问, * 表示全部域名 header('Acc ...

  7. proxyTable-后端代理-跨域请求数据

    config >>> index.js  配置 proxyTable: { '/api': { target:'https://api.jisuapi.com', // 你请求的第三 ...

  8. [django]django配合前端vue前后端联调,django服务端解决跨域(django-cors-headers)

    django内部csrf post提交数据解决 https://www.cnblogs.com/iiiiiher/articles/9164940.html 前端写了个页面,里面$.post发现403 ...

  9. nodejs设置服务端允许跨域

    //设置跨域访问 app.all('*', function(req, res, next) { res.header("Access-Control-Allow-Origin", ...

  10. 「Django」rest_framework学习系列-API访问跨域问题

    #以中间件方式解决API数据访问跨域问题1.API下新建文件夹下写PY文件a.引入内置类继承: from django.middleware.common import MiddlewareMixin ...

随机推荐

  1. 在 C# 9 中使用 foreach 扩展

    在 C# 9 中,foreach 循环可以使用扩展方法.在本文中,我们将通过例子回顾 C# 9 中如何扩展 foreach 循环. 代码演示 下面是一个对树形结构进行深度优先遍历的示例代码: usin ...

  2. Java遍历Map集合

    Java遍历Map集合简单例子 import java.util.*; public class Main { public static void main(String[] args) { Has ...

  3. 最新版 Proteus 8.15 Professional 图文安装教程 [ 附安装包 ]

    前言 Proteus 是世界上唯一将电路仿真软件.PCB设计软件和虚拟模型仿真软件三合一的设计平台. Proteus 8.15 现已发布,本篇将带领大家安装此版本. 介绍 Proteus Proteu ...

  4. Java后台如何接收与处理JSON类型数据

    项目开发中偶尔会使用到某个为JSON类型的字段,一个字段中又包含多个其他的字段. 这种设计方式是根据实际需要来进行处理的,比如规则可能包含多条,每一条规则又包含 多个字段:再比如一些特殊的应用场景如标 ...

  5. 在spring boot3中使用native image

    目录 简介 安装GraalVM 添加Native Image支持 构建spring boot3应用 总结 简介 在之前spring boot3文章中我们介绍了,spring boot3的一个重要特性就 ...

  6. 系列化和反序列化的概述-对象的序列化_Object Output Stream类

    系列化和反序列化的概述 Java提供了一种对象序列化的机制.用一个字节序列可以表示一个对象,该字节序列包含该对象的数据对象的类型和对象中存储的属性等信息.字节序列写出到文件之后,相当于文件中持久保存了 ...

  7. 继承QAbstractTableModel QStyledItemDelegate实现自定义表格,添加进度条和选中框。

    由于项目要求,需要实现一个列表目录显示信息,并且需要实现每一项提供进度条和选项框功能,所以需要继承QAbstractTableModel和QStyledItemDelegate进行自定义. -自定义数 ...

  8. 请求的URI过长:414 Request-URI Too Large

    问题:在项目中遇到使用get 请求,发现前端传递的参数超过nginx 服务器的限制.三种解决方法(任选一种): 1.在nginx配置文件里面把这两个缓存加大 文件位置:conf/nginx.conf ...

  9. (一)Abp入门

    ABP 是用于创建现代Web应用程序的完整体系结构和强大的基础架构,遵循最佳实践和约定,为 您提供 SOLID 开发经验. 目前 ABP 的版本   ASP.NET Boilerplate ASP.N ...

  10. 互斥锁、线程理论、GIL全局解释器、信号量、event事件、进程池和线程池以及协程

    目录 一.互斥锁代码实操 1.互斥锁的概念 2.互斥锁的使用 3.死锁现象 4. 小结 二.线程理论 进程 线程 线程简介 为什么要使用多线程? 多线程概念 多进程的优点: 线程与进程的区别 线程的特 ...