问答

vue3.x引入elementUI,部分页面使用某些组件样式失效

作者:admin 2021-09-23 我要评论

虽然我选择的是按需引入,但是我一口气引入了所有的组件,并且use了。 问题:在别的页面home.vue使用el-button正常,但是在login.vue页面使用却失效 main.js imp...

在说正事之前,我要推荐一个福利:你还在原价购买阿里云、腾讯云、华为云服务器吗?那太亏啦!来这里,新购、升级、续费都打折,能够为您省60%的钱呢!2核4G企业级云服务器低至69元/年,点击进去看看吧>>>)

虽然我选择的是按需引入,但是我一口气引入了所有的组件,并且use了。

问题:在别的页面home.vue使用el-button正常,但是在login.vue页面使用却失效

main.js

import Vue from "vue";
import App from "./App.vue";
import router from "./router";
import store from "./store";

Vue.config.productionTip = false;

// 引入axios
import axios from "./request/axios";
Vue.http = Vue.prototype.$http = axios;

import './plugins/element.js';
// import './assets/element-theme/index.scss';

new Vue({
    router,
    store,
    render: h => h(App)
}).$mount("#app");

./plugins/element.js(是elementUI文档里面直接复制粘贴放到代码里)

import Vue from 'vue';
import {
    Pagination,
    Dialog,
    Autocomplete,
    Dropdown,
    DropdownMenu,
    DropdownItem,
    Menu,
    Submenu,
    MenuItem,
    MenuItemGroup,
    Input,
    InputNumber,
    Radio,
    RadioGroup,
    RadioButton,
    Checkbox,
    CheckboxButton,
    CheckboxGroup,
    Switch,
    Select,
    Option,
    OptionGroup,
    Button,
    ButtonGroup,
    Table,
    TableColumn,
    DatePicker,
    TimeSelect,
    TimePicker,
    Popover,
    Tooltip,
    Breadcrumb,
    BreadcrumbItem,
    Form,
    FormItem,
    Tabs,
    TabPane,
    Tag,
    Tree,
    Alert,
    Slider,
    Icon,
    Row,
    Col,
    Upload,
    Progress,
    Spinner,
    Badge,
    Card,
    Rate,
    Steps,
    Step,
    Carousel,
    CarouselItem,
    Collapse,
    CollapseItem,
    Cascader,
    ColorPicker,
    Transfer,
    Container,
    Header,
    Aside,
    Main,
    Footer,
    Timeline,
    TimelineItem,
    Link,
    Divider,
    Image,
    Calendar,
    Backtop,
    PageHeader,
    CascaderPanel,
    Loading,
    MessageBox,
    Message,
    Notification
} from 'element-ui';
Vue.use(Pagination);
Vue.use(Dialog);
Vue.use(Autocomplete);
Vue.use(Dropdown);
Vue.use(DropdownMenu);
Vue.use(DropdownItem);
Vue.use(Menu);
Vue.use(Submenu);
Vue.use(MenuItem);
Vue.use(MenuItemGroup);
Vue.use(Input);
Vue.use(InputNumber);
Vue.use(Radio);
Vue.use(RadioGroup);
Vue.use(RadioButton);
Vue.use(Checkbox);
Vue.use(CheckboxButton);
Vue.use(CheckboxGroup);
Vue.use(Switch);
Vue.use(Select);
Vue.use(Option);
Vue.use(OptionGroup);
Vue.use(Button);
Vue.use(ButtonGroup);
Vue.use(Table);
Vue.use(TableColumn);
Vue.use(DatePicker);
Vue.use(TimeSelect);
Vue.use(TimePicker);
Vue.use(Popover);
Vue.use(Tooltip);
Vue.use(Breadcrumb);
Vue.use(BreadcrumbItem);
Vue.use(Form);
Vue.use(FormItem);
Vue.use(Tabs);
Vue.use(TabPane);
Vue.use(Tag);
Vue.use(Tree);
Vue.use(Alert);
Vue.use(Slider);
Vue.use(Icon);
Vue.use(Row);
Vue.use(Col);
Vue.use(Upload);
Vue.use(Progress);
Vue.use(Spinner);
Vue.use(Badge);
Vue.use(Card);
Vue.use(Rate);
Vue.use(Steps);
Vue.use(Step);
Vue.use(Carousel);
Vue.use(CarouselItem);
Vue.use(Collapse);
Vue.use(CollapseItem);
Vue.use(Cascader);
Vue.use(ColorPicker);
Vue.use(Transfer);
Vue.use(Container);
Vue.use(Header);
Vue.use(Aside);
Vue.use(Main);
Vue.use(Footer);
Vue.use(Timeline);
Vue.use(TimelineItem);
Vue.use(Link);
Vue.use(Divider);
Vue.use(Image);
Vue.use(Calendar);
Vue.use(Backtop);
Vue.use(PageHeader);
Vue.use(CascaderPanel);

Vue.use(Loading.directive);

Vue.prototype.$loading = Loading.service;
Vue.prototype.$msgbox = MessageBox;
Vue.prototype.$alert = MessageBox.alert;
Vue.prototype.$confirm = MessageBox.confirm;
Vue.prototype.$prompt = MessageBox.prompt;
Vue.prototype.$notify = Notification;
Vue.prototype.$message = Message;

router.js

import Vue from "vue";
import VueRouter from "vue-router";
import store from "@/store/index";
Vue.use(VueRouter);

const routes = [
    { path: '/login', name: 'login', component: resolve => require(['@/views/login/login.vue'], resolve) },
    { path: '/', redirect: store.state.user ? '/home' : '/home' },
    { path: '*', component: resolve => require(['@/views/404'], resolve) },
    {
        path: "/layout",
        name: "layout",
        component: resolve => require(['@/views/layout/Layout.vue'], resolve),
        children: [
            {
                path: "/home",
                name: "home",
                component: resolve => require(['@/views/home/home.vue'], resolve)
            }
        ]
    },
];

const router = new VueRouter({
    mode: "hash",
    base: process.env.BASE_URL,
    routes
});

router.beforeEach((to, form, next) => {
    next();
});

export default router;

然后在home中使用是正常的
WechatIMG431.png
但是在login中使用button却有问题,高宽字体大小等都不见了,但是颜色还在,而input却是正常的
WechatIMG430.png
有没有人遇到过相同的情况?为撒

###

不明白是什么原理,但是login.vue去掉style中的scoped就正常了

<style lang="scss" scoped>
@import "./login.scss";
</style>

改为

<style lang="scss">
@import "./login.scss";
</style>

憨憨疑惑 ???

###
scoped 属性表示 在当前<style>标签内写的样式只在当前组件内有效

版权声明:本文转载自网络,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本站转载出于传播更多优秀技术知识之目的,如有侵权请联系QQ/微信:153890879删除

相关文章
  • vue3.x引入elementUI,部分页面使用某

    vue3.x引入elementUI,部分页面使用某

  • sudo pmset -a GPUSwitch 3会发生什么

    sudo pmset -a GPUSwitch 3会发生什么

  • 万能的大牛,求助,为什么我给li设置左

    万能的大牛,求助,为什么我给li设置左

  • js写的扫雷,连续刷新会出现几次Uncaug

    js写的扫雷,连续刷新会出现几次Uncaug

腾讯云代理商
海外云服务器