丁同亚的博客
夺朱非正色

0.0.0.0 和 127.0.0.1 的区别

webpack配置host为0.0.0.0 可以做移动端开发,使局域网内其他设备可以访问到本地的webpack服务。
其他设备访问127.0.0.1时,只能访问到其他设备本机,不能访问到局域网内的其他设备。
其他设备访问访问的时候ip是服务所在机器的ip即可
服务所在机器可以通过 127.0.1访问本机服务

error:0308010C:digital envelope routines::unsupported

dev: set NODE_OPTIONS=--openssl-legacy-provider

config.resolve.fallback

## 关键词 **https-browserify**
config.resolve.fallback 是 Webpack 5 中引入的一个配置项,用于处理在浏览器环境中不可用的 Node.js 核心模块。在 Webpack 5 之前,这些核心模块通常是通过 node 字段或 resolve.fallback 的前身 resolve.alias 来处理的。但在 Webpack 5 中,为了更好地支持现代 JavaScript 生态系统,特别是那些依赖于 Node.js 核心模块的库,resolve.fallback 提供了一种更灵活和明确的方式来处理这些模块。

移动端响应式 postcss-plugin-px2rem

```
"autoprefixer": "^7.1.2",
"postcss-import": "^11.0.0",
"postcss-loader": "^2.0.8",
"postcss-plugin-px2rem": "^0.8.1",
"postcss-url": "^7.2.1",
"lib-flexible": "^0.3.2"
```
先安装这几个依赖
根目录 创建postcss.config.js 文件
```js
    // https://github.com/michael-ciniawsky/postcss-load-config
    module.exports = {
    plugins: {
        "postcss-import": {},
        "postcss-url": {},
        // to edit target browsers: use "browserslist" field in package.json
        autoprefixer: {},
        "postcss-plugin-px2rem": {
        rootValue: 75, //换算基数, 默认100  ,这样的话把根标签的字体规定为1rem为50px,这样就可以从设计稿上量出多少个px直接在代码中写多上px了。
        // unitPrecision: 5, //允许REM单位增长到的十进制数字。
        //propWhiteList: [],  //默认值是一个空数组,这意味着禁用白名单并启用所有属性。
        // propBlackList: [], //黑名单
        exclude: /node_modules/, //默认false,可以(reg)利用正则表达式排除某些文件夹的方法,例如/(node_module)/ 。如果想把前端UI框架内的px也转换成rem,请把此属性设为默认值
        // selectorBlackList: ['van-'], //要忽略并保留为px的选择器,我们一般不转换vantui中的大小
        // ignoreIdentifier: false,  //(boolean/string)忽略单个属性的方法,启用ignoreidentifier后,replace将自动设置为true。
        // replace: true, // (布尔值)替换包含REM的规则,而不是添加回退。
        mediaQuery: false, //(布尔值)允许在媒体查询中转换px。
        // minPixelValue: 3 //设置要替换的最小像素值(3px会被转rem)。 默认 0
        },
    },
    };

```
html里添加
```js
    function load() {
        const rootFontSize = document.documentElement.clientWidth / 10
        document.documentElement.style.fontSize = rootFontSize + 'px'
    }
    load()
    window.onresize = load
```

rem 是相对 html 标签的 fontsize

浏览器默认字体大小 16px 谷歌最小显示 12px 再小了需要用 transform: scale(0.8)等等

设备像素 css 像素

vue-router 里 动态路由和正则表达式

```js
    const routes = [
    {
        path: 'ccc/:cust(\\d+)?/:name',
        component: SomeComponent
    }
    ];
    // 那么以下URL都将匹配这条路由:
    // /ccc/123/john —— cust 参数为 123,name 参数为 john
    // /ccc/jane —— cust 参数未提供(为 undefined),name 参数为 jane
    // 而像 /ccc/abc/john 这样的URL不会匹配,因为 cust 参数不是由数字组成。
```

vue 强制刷新页面 不会调用 unmounted 等钩子函数

资金流向图 可以用 echarts 做

一个非常坑的知识点, element-plus 文档 里的日历组件 自定义内容

插槽名称 文档里是 date-cell ,但是 不好使 得写成dateCell , ** 坑了 **

options 请求 一般会在 跨域资源共享(CORS)预检 时发送

当浏览器需要发送一个跨源的非简单请求(例如,使用了自定义头部或采用了除 GET、POST 或 HEAD 之外的方法)时,它会先自动发出一个 OPTIONS 请求作为预检。这个预检请求询问服务器是否允许即将到来的实际请求。只有当预检请求成功,并且响应中包含了正确的 CORS 相关头部信息(如 Access-Control-Allow-Origin),浏览器才会发出实际的请求。

vue 项目 devServer.proxy 配置

Error : Route "should be "/"

这个是addRoute的时候报的错,路由配置错误

vite.config.js 配置

其中base 的意思是 开发或生产环境服务的公共基础路径

/_ @vite-ignore _/

/* @vite-ignore */ 是 Vite 中的一个特殊注释,用于忽略特定的代码块或文件,使其在构建过程中不被处理。
在动态路由 的时候使用它,那么打包的时候 vite 会忽略掉这个文件/文件夹,不会被打包.所以打包后点击相应的菜单会请求 xxx.vue
export function lazyLoading(menuUrl) {
  return () =>
    import(/* @vite-ignore */ `/src/views${menuUrl}/index.vue`).catch((e) => {
      // 未找到组件
      // console.error(`页面加载错误,未在'${menuUrl}'下找到有效页面!`)
      return import("@/components/ErrorPage.vue");
    });
  // }
}
上面的代码 不会打包 /src/views${menuUrl}/index.vue 所以点击菜单会请求这个文件,然后404.
去掉 /* @vite-ignore */ 然后 通过 import.meta.glob("@/views/**/*.vue")
const modules = import.meta.glob("@/views/**/*.vue");
let url = modules[`/src/views${menuUrl}/index.vue`];
url();

向响应式数组中 push 一个非响应式数据时,Vue 会将其转换为响应式数据。从响应式数组中取出的数据是响应式的(如果它是一个对象或数组)。

posted on 2024-11-28 10:22  丁同亚的博客  阅读(18)  评论(0)    收藏  举报