nuxt3.0学习-三、nuxt.config.ts配置、跨域处理以及浏览器适配处理

news2025/2/26 6:27:48

nuxt官方对于nuxt.config.ts配置的介绍在Nuxt3.0 nuxt.config.ts配置

关于如何配置本人只能给出一点点启发,具体的配置需要根据个人需求去配置

nuxt.config.ts配置、跨域处理

import { prismjsPlugin } from "vite-plugin-prismjs";
export default defineNuxtConfig({
  //浏览器适配(随着浏览器变化而变化)
  // postcss: {
  //   plugins: {
  //     'postcss-px-to-viewport-8-plugin': {
  //       unitToConvert: 'px', // 需要转换的单位,默认为"px"
  //       viewportWidth: 1920, // 设计稿的视口宽度
  //       unitPrecision: 5, // 单位转换后保留的精度
  //       propList: ['*'],
  //       // propList: ['*','!font-size'], // 能转化为vw的属性列表,!font-size表示font-size后面的单位不会被转换
  //       viewportUnit: 'vw', // 希望使用的视口单位
  //       fontViewportUnit: 'vw', // 字体使用的视口单位
  //       // 需要忽略的CSS选择器,不会转为视口单位,使用原有的px等单位。
  //       // 下面配置表示类名中含有'keep-px'都不会被转换
  //       selectorBlackList: ['keep-px'],
  //       minPixelValue: 1, // 设置最小的转换数值,如果为1的话,只有大于1的值会被转换
  //       mediaQuery: false, // 媒体查询里的单位是否需要转换单位
  //       replace: true, //  是否直接更换属性值,而不添加备用属性
  //       exclude: [/node_modules/], // 忽略某些文件夹下的文件或特定文件,例如 'node_modules' 下的文件
  //       include: [/src/], // 如果设置了include,那将只有匹配到的文件才会被转换
  //       landscape: false, // 是否添加根据 landscapeWidth 生成的媒体查询条件 @media (orientation: landscape)
  //       landscapeUnit: 'vw', // 横屏时使用的单位
  //       landscapeWidth: 1338, // 横屏时使用的视口宽度
  //     }
  //   }
  // },
  app: {
    baseURL: "/路径名称/",//
    head: {
      title: "",
      link: [
        {
          rel: "icon",
          type: "images/x-icon",
          href: "网站ico图标",
        },
      ],
      script: [
        {src: "导入需要的内容文件", type: "text/javascript" },

      ],
      meta: [
        { charset: "utf-8" },
        { name: "viewport", content: "width=device-width, initial-scale=1" },
        { hid: "keywords", name: "keywords", content: "" },
        { hid: "description", name: "description", content: "" },
      ],
    },
    //文件转换的特效 pageTransition: { name: 'slide-right', mode: 'out-in' },
  },
  css: [
    //导入的css文件
    "~/assets/css/public.scss",
    "@/assets/css/iconfont.css",
    "swiper/swiper-bundle.min.css",
  ],
  plugins: [{ src: "~/plugins/vant.ts", ssr: false }],//使用的plugins文件
  build: {
    transpile: ["swiper", "vant"],
  },
  modules: ["导入的模块文件t"],
  devServer: {
    port: 3000,
  },
  //vite配置
  vite: {
    css: {
      preprocessorOptions: {
        scss: {
          additionalData: '@use "~/assets/css/common.scss" as *;',
        },
      },
    },
    plugins: [
      prismjsPlugin({
        languages: ["javascript", "css", "html", 'java', 'json', 'js'],
        plugins: ["toolbar", "show-language", "copy-to-clipboard"],
        theme: "tomorrow", // 主题
        css: true,
      }),
    ],
  },
  //跨域处理
  nitro: {
    devProxy: {
      "/api": {
        target: "配置Api链接",
        changeOrigin: true,
        // prependPath: true,
      },
    },
  },
});

浏览器适配处理

Nuxt3 项目的浏览器兼容性主要取决于所使用的浏览器版本。Nuxt3 支持 ES6+ 的浏览器版本,如 Chrome、Firefox、Safari 等。具体来说,以下是 Nuxt3 官方文档中给出的浏览器版本兼容列表:

  • Chrome 61+
  • Firefox 60+
  • Safari 11.1+
  • Edge 16+
  • iOS Safari 11.3+
  • Android Browser 67+
  • Chrome for Android 69+
    这些浏览器版本提供了对 ES6+ 的支持因此 Nuxt3 可以在这些浏览器上正常运行。如果需要支持更老的浏览器版本,可以使用 Babel 进行编译,但这可能会增加项目的体积和加载时间。

浏览器适配可以使用QQ浏览器的兼容模式
QQ浏览器兼容模式
调整兼容模式变成了
兼容模式后展示样式
nuxt3.0兼容后提示样式为
兼容后
需要在nuxt.config.ts引入下面的代码
nuxt.config.ts配置

script: [
        {src: "代码地址", type: "text/javascript" },

      ],
    ```

代码
```javascript
var _iealwn = _iealwn || {};
!(function () {
  document.write('<div id="_iealwn_js"  data-outver="11" style="height:0;"></div>');
  var drrHttp = "https://support.dmeng.net/ie-alert-warning";
  _iealwn.dir = drrHttp;
  _iealwn.jselem = document.getElementById("_iealwn_js");
  var docmode = document.documentMode;

  if (docmode) {
    _iealwn.browser = browser();
    setTimeout(function () {
      fixload(5);
    }, 1500);
  }
})();

function browser() {
  var u = window.navigator.userAgent;
  var browser = "IE";
  if (u.indexOf("QQBrowser") > -1) {
    browser = "QQBrowser";
  } else if (u.indexOf("2345Explorer") > -1) {
    browser = "2345Explorer";
  } else if (u.indexOf("MetaSr") > -1 || u.indexOf("Sogou") > -1) {
    browser = "Sogou";
  } else if (u.indexOf("Baidu") > -1 || u.indexOf("BIDUBrowser") > -1) {
    browser = "Baidu";
  } else if (u.indexOf("UC") > -1 || u.indexOf(" UBrowser") > -1) {
    browser = "UC";
  } else if (
    u.indexOf("LBBROWSER") > -1 ||
    (!!window.external && !!window.external.LiebaoAutoFill_CopyToClipboard)
  ) {
    browser = "LBBROWSER";
  } else if (
    u.indexOf("Maxthon") > -1 ||
    !!window._MX$MF_6a39a14b_c884_4333_a26b_08330f10ab4aMxBIG
  ) {
    browser = "Maxthon";
  } else if (u.indexOf("360SE") > -1) {
    browser = "360SE";
  } else {
    // IE9、10
    if (!!u.match(/MSIE (9|10)/g)) {
      // 根据窗口标题栏、网址栏、收藏栏高度判断
      var navigator_top = window.screenTop - window.screenY;
      switch (navigator_top) {
        case 71:
        case 100:
        case 102:
        case 126:
          browser = "2345Explorer";
          break;
        case 75:
        case 74:
        case 105:
        case 104:
          browser = "360SE";
          break;
      }
    }
  }
  return browser;
}

function closetouch() {
  var el = document.getElementById("_iealwn_div");
  el.innerHTML = "";
  delete el;
  if (!!_iealwn.once) {
    var d = new Date();
    d = new Date(d.getTime() + 1000 * 60 * _iealwn.once);
    document.cookie = "_iealwn=once; expires=" + d.toGMTString() + "; path=/";
  }
}


function load() {
  if (!_iealwn.once) {
    _iealwn.once = parseFloat(_iealwn.jselem.getAttribute("data-once"));
    if (isNaN(_iealwn.once)) _iealwn.once = 0;
  }
  if (!_iealwn.outver) {
    _iealwn.outver = parseFloat(_iealwn.jselem.getAttribute("data-outver"));
    if (isNaN(_iealwn.outver)) _iealwn.outver = 10;
  }
  if (_iealwn.outver < 6) _iealwn.outver = 6;
  if (_iealwn.outver > 11) _iealwn.outver = 11;

  // 国产双核浏览器
  _iealwn.browserNames = {
    QQBrowser: "QQ浏览器",
    "360SE": "360安全浏览器",
    // "2345Explorer": "2345加速浏览器",
    Baidu: "百度浏览器",
    LBBROWSER: "猎豹安全浏览器",
    Maxthon: "傲游浏览器",
    Sogou: "搜狗浏览器",
    UC: "UC浏览器",
  };

  // 示意图高度
  _iealwn.imgHeight = {
    QQBrowser: 172,
    "360SE": 176,
    // "2345Explorer": 243,
    Baidu: 172,
    LBBROWSER: 220,
    Maxthon: 400,
    Sogou: 119,
    UC: 126,
  };
  var css =
    '#iealertwn{text-align:center;display:block!important}\
    #iealertwn .iealwn-text-muted .touchcss{color:#da2128;text-decoration:underline;cursor: pointer;}\
    #iealertwn .iealwn-text-muted .touchcss-g{color:#999;text-decoration:underline;cursor: pointer;}\
    #iealertwn .iealwn-wrap{position:absolute;z-index:2147483647;top:25px;left:0;right:0}\
    #iealertwn .iealwn-box{width:800px;margin:0 auto 20px;overflow:hidden;border:1px solid #ededed}\
    #iealertwn .iealwn-main{border:10px solid #fff;font-family:"宋体"}\
    #iealertwn .iealwn-line{height:32px;line-height:32px;background-color:#ffeeba;color:#c4691f;text-align:center;font-size:12px}\
    #iealertwn .iealwn-line a{color:#c4691f;text-decoration:none}\
    #iealertwn .iealwn-notice{background-color:#fff8e5;padding:50px 55px 55px;text-align:left;color:#c4691f;font-size:16px}\
    #iealertwn .iealwn-title{display:block;background-repeat:no-repeat;line-height:22px;height:22px;padding-left:26px;margin:50px 0 10px 0;font-weight:700}\
    #iealertwn .iealwn-title_alert{margin:0 0 24px;padding:0;font-size:24px;line-height:28px;height:28px;color:#da2128}\
    #iealertwn .iealwn-title_horn{background-image:url(' +
    _iealwn.dir +
    "/images/icon_horn.png)}\
    #iealertwn .iealwn-title_browser{background-image:url(" +
    _iealwn.dir +
    "/images/icon_browser.png)}\
    #iealertwn .iealwn-title_faq{background-image:url(" +
    _iealwn.dir +
    '/images/icon_faq.png)}\
    #iealertwn .iealwn-text{position:relative;margin:10px 2px;line-height:24px}\
    #iealertwn .iealwn-text-muted, #iealertwn .iealwn-text-muted a{color:#999}\
    #iealertwn a{color:#da2128;text-decoration:underline}\
    #iealwn-browsers .iealwn-browser-link{text-decoration:none;display:inline-block;width:90px;color:#c4691f}\
    #iealwn-browsers .iealwn-browser-dlink{text-decoration:none;background-color:#ffeeba;color:#c4691f;display:inline-block;width:60px;text-align:center}\
    #iealwn-browsers .iealwn-browser-dlink:hover{background-color:#dc3545;color:#fff}\
    #iealwn-browsers .iealwn-browser-clear{clear:left;width:100%;height:1px;content:""}\
    #iealwn-browsers .iealwn-browser{background-color:#fff;background-repeat:no-repeat;background-position:8px 5px;line-height:44px;padding-left:50px;float:left;margin:18px 18px 0 0}\
    #iealwn-browsers .iealwn-browser-mr0{margin-right:0}\
    #iealertwn .iealwn-line .iealwn-close{cursor: pointer;width:100%;height:100%;display:inline-block;}\
    img.iealwn-guide{background:url(' +
    _iealwn.dir +
    "/images/blank.png) no-repeat center center #e9ecef}";

  var style = document.createElement("style");
  style.id = "_iealwn_style";
  style.type = "text/css";

  if (style.styleSheet) style.styleSheet.cssText = css;
  else style.innerHTML = css;

  document.getElementsByTagName("head")[0].appendChild(style);

  var browsers = [
    {
      slug: "chrome",
      bgimg:'https://kaka-image-bucket.oss-cn-hangzhou.aliyuncs.com/website/ie/images/chrome.png',
      bgimg_gray:'https://kaka-image-bucket.oss-cn-hangzhou.aliyuncs.com/website/ie/images/chrome_gray.png',
      name: "谷歌浏览器",
      url: "https://www.google.cn/chrome/?hl=zh-CN&standalone=1",
      durl: "https://www.google.cn/chrome/thankyou.html?standalone=1&statcb=0&installdataindex=defaultbrowser",
    },
    {
      slug: "firefox",
      bgimg:'https://kaka-image-bucket.oss-cn-hangzhou.aliyuncs.com/website/ie/images/firefox.png',
      bgimg_gray:'https://kaka-image-bucket.oss-cn-hangzhou.aliyuncs.com/website/ie/images/firefox_gray.png',
      name: "火狐浏览器",
      url: "https://www.mozilla.org/zh-CN/firefox/new/",
      durl: "https://download.mozilla.org/?product=firefox-stub&os=win&lang=zh-CN",
    },
    {
      slug: "edge",
      bgimg:'https://kaka-image-bucket.oss-cn-hangzhou.aliyuncs.com/website/ie/images/edge.png',
      bgimg_gray:'https://kaka-image-bucket.oss-cn-hangzhou.aliyuncs.com/website/ie/images/edge_gray.png',
      name: "微软浏览器",
      url: "https://www.microsoft.com/zh-cn/windows/microsoft-edge",
      durl: "https://www.microsoft.com/zh-cn/windows/microsoft-edge",
    },
    {
      slug: "sogou",
      bgimg:'https://kaka-image-bucket.oss-cn-hangzhou.aliyuncs.com/website/ie/images/sogou.png',
      bgimg_gray:'https://kaka-image-bucket.oss-cn-hangzhou.aliyuncs.com/website/ie/images/sogou_gray.png',
      name: "搜狗浏览器",
      url: "https://ie.sogou.com/",
      durl: "https://dlie.sogoucdn.com/se/sogou_explorer_11.0.1.34700_0000.exe",
    },
    {
      slug: "se360",
      bgimg:'https://kaka-image-bucket.oss-cn-hangzhou.aliyuncs.com/website/ie/images/se360.png',
      bgimg_gray:'https://kaka-image-bucket.oss-cn-hangzhou.aliyuncs.com/website/ie/images/se360_gray.png',
      name: "360浏览器",
      url: "https://browser.360.cn/se/",
      durl: "https://dl.360safe.com/netunion/20140425/360se+75526+n1abed0ce91.exe",
    },
    {
      slug: "qqbrowser",
      bgimg:'https://kaka-image-bucket.oss-cn-hangzhou.aliyuncs.com/website/ie/images/qqbrowser.png',
      bgimg_gray:'https://kaka-image-bucket.oss-cn-hangzhou.aliyuncs.com/website/ie/images/qqbrowser_gray.png',
      name: "QQ浏览器",
      url: "http://browser.qq.com/",
      durl: "https://cdntip-net-production-file-1251013107.file.myqcloud.com/myapp/rcps/d/85000/QQBrowser_subid@100002_urlid@100002.exe",
    },
  ];

  var isXP = navigator.userAgent.indexOf("Windows NT 5") != -1;
  var is7or8 = navigator.userAgent.indexOf("Windows NT 6") != -1;
  var browsersHtml = "";
  for (var i = 0; i < browsers.length; i++) {
    var slug = browsers[i]["slug"];
    var bgimg = browsers[i]["bgimg"];
    var bgimg_gray = browsers[i]["bgimg_gray"];
    var classes = "iealwn-browser iealwn-browser_" + slug;
    // 第三个右边距设置为0,必须用这个蠢办法,因为要支持IE6
    if ((i + 1) % 3 == 0) classes += " iealwn-browser-mr0";
    //isXP && slug.match(/(chrome|firefox|edge)/g)

    if (isXP && slug.match(/(chrome|firefox|edge)/g)) {
      // 谷歌、火狐、微软浏览器都不支持 Windows XP

      var warningTitle = browsers[i]["name"] + "已经全面停止支持 Windows XP 系统!请选择其他浏览器。";
      if (slug == "edge")
        warningTitle =
          "Microsoft Edge 专为 Windows 10 打造!请选择其他浏览器。";

      browsersHtml +='<div class="' +classes +'" style="background-image:url('+bgimg_gray +')">\
                    <a href="#" οnclick="alert(\'' +
        warningTitle +
        '\');return false;" class="iealwn-browser-link" style="color:#777">' +
        browsers[i]["name"] +
        '</a>\
                    <a href="#" οnclick="alert(\'' +
        warningTitle +
        '\');return false;" class="iealwn-browser-dlink" style="color:#777;background:#ccc">不支持</a>\
                </div>';
    } else if (is7or8 && slug == "edge") {
      /**
                微软浏览器都不支持 Windows 7 和 8,提示下载 IE11
                
                事实上可以装 Edge 的 Windows 10 的 IE 已经是11
                也就是说,能看到升级提示的人的系统都用不了 Edge 而可以用的则都不会看到升级提示
                那把 Edge 放到这里是多余的吗?
                不,这是为了宣传 Windows 10 ,吸引用户今早升级系统
            **/
      browsersHtml +=
        '<div class="' +
        classes +
        '" style="background-image:url(' +bgimg_gray+')">\
                    <a href="#" οnclick="alert(\'Microsoft Edge 专为 Windows 10 打造!请选择其他浏览器。\');return false;" class="iealwn-browser-link" style="color:#777">' +
        browsers[i]["name"] +
        '</a>\
                    <a href="https://www.microsoft.com/zh-cn/download/internet-explorer-11-for-windows-7-details.aspx" class="iealwn-browser-dlink" target="_blank" title="下载' +
        browsers[i]["name"] +
        '">IE11</a>\
                </div>';
    } else {
        browsersHtml +='<div class="' +classes +
        '"style="background-image:url('+bgimg+')">\
        <a href="' +browsers[i]["url"] +'" class="iealwn-browser-link" target="_blank">' +browsers[i]["name"] +'</a>\
        <a href="' +browsers[i]["durl"] +'" class="iealwn-browser-dlink" target="_blank" title="点击下载' + browsers[i]["name"] +'">下载</a>\</div>';
    }
  }

  var currentBrowserHtml = "";
  currentBrowserHtml +=
    '<div class="iealwn-text iealwn-text-muted">您使用的不是IE浏览器?是 ';
  var i = 1;
  var count = 0;
  for (var prop in _iealwn.browserNames) {
    count++;
  }
  for (var browser in _iealwn.browserNames) {
    currentBrowserHtml +=
      '<span class="touchcss-g" οnclick="browserAlert(\'' +
      browser +
      "')\">" +
      _iealwn.browserNames[browser] +
      "</span>";
    if (i < count) {
      currentBrowserHtml += "、";
    }
    i++;
  }
  currentBrowserHtml +=
    " 其中一个吗?若是如此,您暂可不必升级,点击名称查看教程并按步骤切换至极速内核也可正常访问。</div>";

  var alertHtml =
    '<div id="iealertwn"><div class="iealwn-wrap"><div class="iealwn-box"><div class="iealwn-main">\
        <div class="iealwn-line">\
            <a href="https://support.dmeng.net/kill-old-versions-of-ie.html?utm_source=iealwn" target="_blank">旧版 Internet Explorer 升级提示弹窗</a>\
        </div>\
        <div class="iealwn-notice">\
            <div class="iealwn-title iealwn-title_alert">危险!您正在使用的IE浏览器已过期,请立即升级!</div>\
            <div class="iealwn-text">自2016年1月12日起,微软不再为IE11以下版本提供相应支持和更新。没有关键的浏览器安全更新,您的电脑可能易受有害病毒、间谍软件和其他恶意软件的攻击,它们可以窃取或损害您的业务数据和信息。为确保您的电脑安全,请停止使用IE的过期版本!</div>\
            <div class="iealwn-browser_alert" id="_iealwn_browserAlert">\
                <div class="iealwn-title iealwn-title_horn">是时候升级你的浏览器了!</div>\
                <div class="iealwn-text">如您坚持使用当前浏览器访问本站,你将看到排版错误、功能不全、无法正常使用的网页,甚至是满屏乱码。请使用更先进的浏览器访问。</div>\
            </div>\
            <div class="iealwn-browseralert_new" id="_iealwn_browserAlert_new">' +
    currentBrowserHtml +
    '</div>\
            <div class="iealwn-title iealwn-title_browser">下载更先进的浏览器</div>\
            <div class="iealwn-browsers" id="iealwn-browsers">' +
    browsersHtml +
    '<div class="iealwn-browser-clear"></div>\
            </div>\
            <div class="iealwn-title iealwn-title_faq">为什么会出现这个弹窗?</div>\
            <div class="iealwn-text">如果你不知道升级浏览器是什么意思,请请教一些熟练电脑操作的朋友。如你是网站技术人员,请加入旧版 Internet Explorer 淘汰行动。<a href="https://support.dmeng.net/kill-old-versions-of-ie.html?utm_source=iealwn" target="_blank">了解详情</a></div>\
        </div>\
        <div class="iealwn-line">\
            <span class="iealwn-close"  id="closetouch" οnclick="closetouch()">我已了解风险,并关闭弹窗</span>\
        </div>\
    </div></div></div></div>';

  var alertDiv = document.createElement("div");
  alertDiv.id = "_iealwn_div";
  alertDiv.innerHTML = alertHtml;
  document.getElementsByTagName("body")[0].appendChild(alertDiv);

  // 延迟判断,因为傲游浏览器的属性是异步注入
  setTimeout(function () {
    browserAlert();
  }, 1000);
}

function browserAlert(key) {
  if (!key) {
    browser = _iealwn.browser;
  } else {
    browser = key;
  }
  var names = _iealwn.browserNames;
  var alertHtml = "";
  if (!!names[browser]) {
    var browserName = names[browser];
    var imgHeight = _iealwn.imgHeight[browser];

    alertHtml +=
      '<div class="iealwn-title iealwn-title_horn">您使用的是' +
      browserName +
      '吗?</div>\
            <div class="iealwn-text">您正在使用的可能是' +
      browserName +
      'IE兼容模式。若是如此,您暂可不必升级,按下图所示步骤切换至极速内核也可正常访问。(示意图仅供参考,浏览器不同版本可能有差异)</div>\
            <div class="iealwn-text"><img class="iealwn-guide" src="' +
      _iealwn.dir +
      "/images/switch-" +
      browser +
      '.png" width="586" height="' +
      imgHeight +
      '" style="width:586px !important;height:' +
      imgHeight +
      'px !important" alt="示意图" title="如图片未显示,请点击右键选择 显示图片(H)"></div>\
        ';

    alertHtml +=
      '<div class="iealwn-text iealwn-text-muted">其他双核浏览器切换极速内核示意图(点击名称查看):';
    for (var key in names) {
      if (key == browser) continue;
      alertHtml +=
        '<span class="touchcss" οnclick="browserAlert(\'' +
        key +
        "')\">" +
        names[key] +
        "" +
        "</span> &nbsp;";
    }
    alertHtml += "</div>";
    document.getElementById("_iealwn_browserAlert").style.display = "none";
    document.getElementById("_iealwn_browserAlert_new").innerHTML = alertHtml;
  }
}

function fixload(num) {
  if (
    document.getElementById("_iealwn_div") === null &&
    document.getElementsByTagName("head").length > 0 &&
    document.getElementsByTagName("body").length > 0
  ) {
    load();
  } else {
    if (num > 1) {
      setTimeout(function () {
        fixload(num - 1);
      }, 1000);
    }
  }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/618855.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

CompletableFuture异步和线程池

一、线程回顾 1、初始化线程的 4 种方式 1&#xff09;、继承 Thread 2&#xff09;、实现 Runnable 接口 3&#xff09;、实现 Callable 接口 FutureTask &#xff08;可以拿到返回结果&#xff0c;可以处理异常&#xff09; 4&#xff09;、线程池 方式 1 和方式 2&am…

《精通特征工程》学习笔记(1):数值特征处理

不进行多余的解释&#xff0c;想看原文直接下载pdf查看&#xff0c;本文是精简提炼了重要的方法写进来。 1.二值化 在百万歌曲数据集中&#xff0c;原始的收听次数并不是衡量用户喜好的强壮指标。&#xff08;在统计学术语 中&#xff0c;“强壮”意味着该方法适用于各种情况…

【2611. 老鼠和奶酪】

来源&#xff1a;力扣&#xff08;LeetCode&#xff09; 描述&#xff1a; 有两只老鼠和 n 块不同类型的奶酪&#xff0c;每块奶酪都只能被其中一只老鼠吃掉。 下标为 i 处的奶酪被吃掉的得分为&#xff1a; 如果第一只老鼠吃掉&#xff0c;则得分为 reward1[i] 。如果第二…

Hive之HPLSQL安装手册

软件版本信息&#xff1a; CDH&#xff1a; cdh5.14.0 Hive: 1.1.0 Impala&#xff1a;2.11.0一&#xff1a;下载地址 Hplsql官网&#xff1a; http:www.hplsql.org/download 下载的是&#xff1a;hplsql-0.3.31.tar.gz版本 二&#xff1a;安装步骤 解压下载的hplsql-0.3.…

kafka 02

4.API开发 准备&#xff1a; 创建项目 &#xff0c; 添加依赖 XML <properties> <maven.compiler.source>8</maven.compiler.source> <maven.compiler.target>8</maven.compiler.target> </properties> <depen…

如何评价编程语言 Reason?

Reason编程语言的设计目标是为开发人员提供一种易于理解和学习的工具&#xff0c;同时提供静态类型检查和高效的代码执行。Reason基于OCaml语言&#xff0c;并引入了JavaScript的语法和工具链&#xff0c;使得开发者能够在现有的JavaScript生态系统中更好地开发和维护代码。Rea…

2023,数据库国产替代走到哪了?

如今&#xff0c;战场不仅银行&#xff0c;参战者也不仅单独的一家。对中国的国产数据库而言&#xff0c;机会和挑战都在加速涌来。 作者|思杭 编辑|皮爷 出品|产业家 2023&#xff0c;数据库格局正在变化&#xff0c;愈演愈烈。 如果说哪个环节是如今国产替代的最火热…

chatgpt赋能python:Python中如何输出两个数

Python中如何输出两个数 对于任何一种编程语言来说&#xff0c;输出两个数都是非常基础的知识点&#xff0c;Python也不例外。在Python中&#xff0c;我们可以使用print()函数来输出两个数。本篇文章将会介绍如何在Python中输出两个数。 介绍 在Python中&#xff0c;输出两个…

Python让文档处理变得轻松:如何快速替换Word文档中的关键字

应用场景&#xff1a; Python自动化处理Word文档的功能可以应用于许多场景&#xff0c;以下是其中一些常见的应用场景&#xff1a; 批量处理文档&#xff1a;如果您需要处理大量的Word文档&#xff0c;例如替换文本、添加文本、修改格式等&#xff0c;手动完成这些任务将非常耗…

驱动LSM6DS3TR-C实现高效运动检测与数据采集(4)----上报匿名上位机实现可视化

概述 LSM6DS3TR-C是单芯片“3轴陀螺仪 3轴加速度计”的惯性 测量单元(IMU)&#xff0c; 五种种可选满量程的陀螺仪(125/250/500/1000/2000 dps)和加速度计(2/4/8/16 g)。 上述工程中选择的加速度和陀螺仪对应的量程为2g和2000dps&#xff0c;对应的灵敏度如下所示&#xff0c…

具有更多存储空间和带宽的亚马逊云科技Snowball Edge存储优化型设备

亚马逊云科技AWS Snow Family系列设备用于将数据经济高效地迁移到云端并在边缘进行处理。增强型Snowball Edge存储优化型设备专为PB级数据迁移项目而设计&#xff0c;具有210TB的NVMe存储空间&#xff0c;每秒可传输高达1.5千兆字节的数据。这些设备还包括10GBASE-T、SFP48和QS…

缩略图加密学习总结

一、缩略图加密概述 完全加密为噪声图像后&#xff0c;密文图像的文件扩展&#xff0c;传输存储消耗更多的资源。完全加密的噪声图像的可用性建立在对密文进行解密的基础上&#xff0c;耗费大量的计算代价。原始图像中精细的视觉信息被抹去以保护隐私,而粗略的视觉信息被保留以…

Vue+element UI实现列表全部数据排序

element ui 表格中的sortable属性只能实现当前页数据的排序&#xff0c;无法实现整张表全部数据的排序&#xff0c;所以需要采取自定义的排序方式重新触发接口&#xff0c;获取排序好的全部列表 Java后端的分页列表有这两个字段需要前端去传递&#xff1a; el-table 上加上so…

springboot 2.6.12 自定义解析 yaml 加密数据

文章目录 一、简介二、yaml 默认解析简单说明三、自定义 yaml 解密解析器四、配置 PropertySourceLoader五、简单测试 一、简介 为了保证项目的配置文件的安全性&#xff0c;需要对第三方组件 mysql、redis、es、mq 等用户名密码进行加密处理&#xff0c;可以使用现成的三方包…

【springboot项目开发】文件上传与下载

目录 总体介绍 文件上传 介绍 文件上传的前端需求 文件上传的前端代码 文件上传的后端需求 文件上传的后端代码 文件下载 介绍 前端需求 前端代码 后端需求 后端代码 总体介绍 文件的上传和下载功能&#xff0c;是项目开发过程中比较常见的业务需求&#xff0c;我们…

开源 Golang 微服务入门二:RPC 框架 Kitex

前言 前一篇笔记介绍了字节跳动的开源 Golang 微服务 HTTP 框架 Hertz&#xff0c; 如下&#xff1a; 开源 Golang 微服务入门一&#xff1a; HTTP 框架 Hertz 本文将要介绍同样是字节跳动开源的 Golang 微服务 RPC 框架 Kitex。 Kitex 简介 Kitex 字节跳动内部的 Golang 微…

nacos高级

一、什么是配置中心 在微服务架构中&#xff0c;当系统从一个单体应用被拆分成分布式系统上的一个个服务节点后&#xff0c;配置文件也必须跟着迁移&#xff08;分割&#xff09;&#xff0c;这样配置就分散了。不仅配置会分散&#xff0c;分散中还会包含着冗余。 配置中心将…

Linux进程、用户、权限命令

进程管理命令 进程和程序的区别 1 程序是静态概念&#xff0c;本身作为一种软件资源长期保存&#xff1b;而进程是程序的执行过程&#xff0c;它是动态概念&#xff0c;有一定的生命期&#xff0c;是动态产生和消亡的。 2 程序和进程无一一对应关系。一个进程在活动中可有顺序…

顺序表和链表的比较

本文主要内容&#xff1a;从存取方式、逻辑/物理结构、查找/插入/删除操作和空间分配的角度比较顺序表和链表&#xff0c;并从存储、运算、环境的角度对比应如何选取存储结构。 目录 一、顺序表和链表的比较1、存取&#xff08;读写&#xff09;方式2、逻辑/物理结构3、查找、…

AI人工智能领域精美绘图模板分享

1 人工智能的发展历程 如今人工智能的应用渗透了我们生活的方方面面&#xff0c;我们都知道人工智能的前景十分光明&#xff0c;在未来对于推进人类发展进程也是非常重要的&#xff0c;但其实人工智能的发展道路是极其曲折的&#xff0c;下面就将人工智能的发展历程分为如下六…