zoukankan      html  css  js  c++  java
  • vue使用问题汇总记录

    1.vue的样式污染

    比如在home.vue文件下面定义一个样式,

    <style>
    .title{
        background: red;
    }
    </style>

    那么在login.vue文件下面有标签使用这个class=“title”,也会有这个样式;

    避免样式污染的方法:

    <style></style>
    写成
    <style scoped></style>

    多加了个scoped, 这样,style标签中的样式的作用域就只是在此vue文件了,就不会出现样式污染的情况了

    2.js全局事件

    比如在某个页面vue下面定义了window.onresize,这是监听浏览器窗口大小发生变化触发的函数;当你在另一个vue页面下改变窗口大小也会触发

    window.onresize = () => {
        console.log('test')
    }

    因为:window.onresize是全局事件,在其他页面改变界面时也会执行,若仅仅是该页面需要,那么需要在页面销毁时清除事件

    方法如下:

      destroyed(){
        window.onresize = null;
      }

    3.部署项目到服务器上面,路由使用history模式导致问题

    路由模式 hash 就没事,但为 history 时你会发现
    此时只有首页能访问,通过首页点进去其他路由也是可以的,但是如果在其他路由刷新浏览器就有错误了,File not found;找不到文件;

    因为原来跳转时其实不是通过请求服务器的,而是通过js操作history的API改变地址完成的。

    当你刷新了之后浏览器就耿直的去请求服务器了,然而服务器没有这个文件,于是就404了。

    解决办法,找百度,百度都是说用这个中间件connect-history-api-fallback和express配置啥啥的,就是用了nodejs和express搭建了个简单服务器,并采用了官方推荐的中间件;

    但是我服务器用的是nginx,所以直接修改nginx重定向就行了

    4、vue使用.native修饰符

    如果你想在某个组件的根元素上绑定事件,直接使用 @click=''function' 是不生效的,我们可以添加.native修饰符 @click.native=''function''

    比如想在引入的子组件上面添加监听点击事件,直接用@click是不生效的,还要加.native修饰符才能触发, @是v-on的缩写;

    5、使用element-ui样式

    比如想在组件重写element-ui标签的样式,直接像下面这样修改是不生效的,如果去掉scoped是可以,但是去掉scoped,其他地方用到的这个组件样式都会被影响

    解决方法使用 >>>字符,详情原因可查看https://www.jianshu.com/p/9caf9e7aaca4

  • 相关阅读:
    PostgreSQL查看等待锁的SQL和进程
    effective_io_concurrency很重要的一个参数
    PostgreSQL逻辑复制到kafka-实践
    Linux下路由配置梳理(转)
    创建B树,动态添加节点,并使用三种遍历算法对树进行遍历
    思考--PostgreSQL在与mysql的比较中稍微弱势项
    思考-继续思考在数据库中两个表join的问题
    思考--mysql 分库分表的思考
    超级实用的网址大全
    C++ 读取txt文本内容,并将结果保存到新文本
  • 原文地址:https://www.cnblogs.com/JahanGu/p/12868613.html
Copyright © 2011-2022 走看看