关于使用scoped scss 控制子组件样式无效的解决方案

/deep/或者>>>,如果无效可以使用::v-deep替换

  .charts {
    ::v-deep .el-tabs__item {
      height: 55px;
      line-height: 55px;
    }
    margin-top: 10px;
    padding: 0px 15px;
    background: white;
  }

注意:::v-deep后边必须有空格

子组件根节点样式会受到父组件样式影响,这样设计是为了让父组件可以从布局的角度出发,调整其子组件根元素的样式。所以子组件根节点的class不能与父组件相同。
参考 https://vue-loader.vuejs.org/zh/guide/scoped-css.html#子组件的根元素

css定义全局css变量 \src\styles\variables.scss

$monitorColor:#79c882;
$monitorHighColor:#ff6d6d;
$monitorLowColor:#d986f4;

引用

@import "~@/styles/variables.scss";
 
.list_ul ul li span.low {
  background-color: $monitorLowColor;
}

本地调试跨域问题解决

  devServer: {
    port: port,
    open: true,
    overlay: {
      warnings: false,
      errors: true
    },
    proxy: 'http://xxxx.com',  // api接口地址
  },

本地多个地址配置代理

  devServer: {
    port: port,
    open: true,
    overlay: {
      warnings: false,
      errors: true
    },
    proxy: {
      '/dev-api': {
        target: `http://${baseHost}:20015`,
        changeOrigin: true,
        pathRewrite: {
          '^/dev-api': '/'
        }
      },
      '/socketapi': {
        target: `ws://${baseHost}:20017`,
        changeOrigin: true,
        ws: true,
        pathRewrite: {
          '^/socketapi': '/'
        }
      },
      '/amapapi': {
        target: 'https://restapi.amap.com',
        changeOrigin: true,
        pathRewrite: {
          '^/amapapi': '/'
        }
      },
    }
  },

打包后nginx代理解决跨域问题

   # 配置代理转发(/prod-api 是.env.production 内定义的)
   location /prod-api {
      rewrite  ^.+prod-api/?(.*)$ /$1 break;
      include  uwsgi_params;
      proxy_pass   http://110.124.10.133:20015;  #api地址
    }
 
   location /amapapi {
      rewrite  ^.+amapapi/?(.*)$ /$1 break;
      include  uwsgi_params;
      proxy_pass   https://restapi.amap.com;  #api地址
    }
 
    location /socketapi {
            proxy_pass http://110.124.10.133:20017/; #websocket地址      
            proxy_http_version 1.1;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_read_timeout 120s;
            proxy_set_header Upgrade websocket;
            proxy_set_header Connection Upgrade;
      }

el-radio-group渲染不选中问题
在el-radio-group中绑定v-model绑定的类型和label必须一个类型,否则可能渲染不选中

this.$set的使用
官方文档说明 如果在实例创建之后添加新的属性到实例上,它不会触发视图更新。这个时候就需要使用

this.$set(ele,'checked',true)

在vue里声明过的对象,添加新属性值,有一种写法是会更新此属性的值,但是不能检测到对象属性的添加或删除不会更新视图。

打包时提示Using / for division is deprecated
Building for production…DEPRECATION WARNING: Using / for division is deprecated and will be removed in Dart Sass 2.0.0.

Recommendation: math.div($spacer, 2)

style添加

<style lang="scss" scoped>
  @use "sass:math";
 
 并且将$spacer/2 修改为  math.div($spacer, 2)

发表评论

邮箱地址不会被公开。 必填项已用*标注