多端兼容配置

标签

<!-- 一般标签 -->
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. [深度学习] 神经网络的理解(MLP RBF RBM DBN DBM CNN 整理学习)

    转载于 http://lanbing510.info/2014/11/07/Neural-Network.html 开篇语 文章整理自向世明老师的PPT,围绕神经网络发展历史,前馈网络(单层感知器,多 ...

  2. 【Java】线程池梳理

    [Java]线程池梳理 前言 线程池:本质上是一种对象池,用于管理线程资源.在任务执行前,需要从线程池中拿出线程来执行.在任务执行完成之后,需要把线程放回线程池.通过线程的这种反复利用机制,可以有效地 ...

  3. 使用Prometheus监控docker compose方式部署的ES

    需求 收集 ES 的指标, 并进行展示和告警; 现状 ES 通过 docker compose 安装 所在环境的 K8S 集群有 Prometheus 和 AlertManager 及 Grafana ...

  4. idea 函数名灰色

    idea被引用的方法名突然全部灰掉了 idea被引用的方法名突然全部灰掉了[已解决]_weixin_42554373的博客-CSDN博客_idea方法名灰色

  5. [LeetCode]819. 最常见的单词

    题目 给定一个段落 (paragraph) 和一个禁用单词列表 (banned).返回出现次数最多,同时不在禁用列表中的单词.题目保证至少有一个词不在禁用列表中,而且答案唯一. 禁用列表中的单词用小写 ...

  6. STM32F103和AIR32F103的FreeRTOS中断优先级

    关于 Arm Cortex M 系列内核的中断优先级 https://community.arm.com/arm-community-blogs/b/embedded-blog/posts/cutti ...

  7. 使用英特尔 Sapphire Rapids 加速 PyTorch Transformers 模型

    大约一年以前,我们 展示 了如何在第三代 英特尔至强可扩展 CPU (即 Ice Lake) 集群上分布式训练 Hugging Face transformers 模型.最近,英特尔发布了代号为 Sa ...

  8. Vue3的script setup语法糖这么好用的吗????

    最近发现这个vue3居然还可以这样写 原始写法 <template> <h1>Tangdoudou</h1> <h1>{{ num }}</h1& ...

  9. 在Typescript项目中,使用ESLint和Prettier,以及解决保存代码后ESLint配置冲突问题

    首先,检查项目中根目录.eslintrc.js文件,该文件中定义了ESLint的基础配置,找到其中的rules 例如: const prettierConfig = require('./.prett ...

  10. 当LOGO设计与世界文化擦出火花——JJQ的LOGO设计之路

      <当LOGO设计与世界文化碰撞出火花--论 JJQ 的LOGO是如何制成的> (友链:https://tg.hszxoj.com/user/475) 首先我们对jjq对应的汉字进行拉长 ...