遇到的问题

161 阅读3分钟
  1. vue父组件异步传递props,子组件获取不到 因为子组件先渲染,子组件渲染完后,父组件请求接口还没返回数据。 解决方法:
可以给引用子组件的地方加上v-if,父组件获取到数据时再渲染子组件
  1. 深拷贝JSON.pare(JSON.stringify()) 深拷贝遇到函数会丢失。

image.png obj对象中若含有时间类型的对象,会被反序列化成字符串数据类型。 obj对象中如果有RegExp、Error对象,则最后会被转成空对象。

var o = {
    n: 1,
    s: 'abc',
    b: true,
    empty: null,
    a: [1,2,3],
    o:{ a: 1},
    d: new Date(),
    r: /abc/,
    u: undefined,
    f: function(){}
}

console.log(JSON.stringify(o));
// {"n":1,"s":"abc","b":true,"empty":null,"a":[1,2,3],"o":{"a":1},"d":"2018-07-05T02:49:37.194Z","r":{}}

JSON.stringfiy()的第二个可选参数是replacer, 如果该参数是一个函数,则在序列化过程中,被序列化的值的每个属性都会经过该函数的转换和处理;如果该参数是一个数组,则只有包含在这个数组中的属性名才会被序列化到最终的 JSON 字符串中;如果该参数为null或者未提供,则对象所有的属性都会被序列化

  1. 前端埋点 要记录用户的浏览轨迹,知道用户浏览了哪些页面,停留时间、手机型号

  2. git 解决冲突后要重新git add . ==> git commit -m '' ==>git push

  3. Vue提供组件的目的不仅仅是为了复用,也可以用来分割代码,甚至善用组件可以优化页面的渲染更新速度。 这是因为Vue页面渲染更新时不会去更新页面中的组件,除非组件的props或者slot所引用的数据发生变化。

  4. 关于在vue项目中,刷新页面时websocket断开连接的解决办法 webSocket在同一个html文件中,是可以保持连接的. 但是当使用f5或者点击刷新页面以后, websocket连接就会强制关闭

https://blog.csdn.net/weixin_41144066/article/details/80343380
  1. 基于Element-UI的组件改造的树形选择器
<el-tree></el-tree>
https://blog.csdn.net/Mr_JavaScript/article/details/88604270
https://blog.csdn.net/sleepwalker_1992/article/details/87894588
  1. 在vue项目中绘制bpmn图
https://www.jianshu.com/p/01a9f15b145b?utm_campaign=hugo
  1. vue-cli配置反向代理解决跨域问题 blog.csdn.net/my_csdn2018…

  2. Vue Element图标不显示问题

修改publicPath的相对路径
  1. 解决使用Vue-cli打包,生成index.html文件无法使用浏览器打开的问题 www.cnblogs.com/badaoliuman…

  2. Vue-cli npm run build 生产环境打包, 本地不能打开问题 index.html空白页和css图片不显示 blog.csdn.net/qq_37968920…

  3. 页面刷新后,vuex中数据丢失、清空的解决方案 vuex-persistedstate segmentfault.com/a/119000001…

  4. 在做项目的时候 遇到的问题是 点击表格内不同的选项 在弹框内加载不同的树形数据。在使用懒加载的时候,发现打开不同的弹框只加载了一次数据,弹框内的内容没有更新。

  5. 判断一个变量存在,而且有可能为0

if (params || params === 0)
  1. 数据标准数据流太乱,子组件的改动统统放到最终的父组件里面修改 谁定义谁修改原则
el-dialog关闭后只是隐藏并没有在页面销毁,before-close时要重置activeName,tableData等,不能在el-dialog mounted的时候处理重置数据的操作。

18.el-input 只能输入数字和英文逗号

 <el-form-item label="素材id">
     <el-input size="small" v-model.trim="materialId" oninput="value=value.replace(/[^\d\,]/g,'')" style="width: 140px;" placeholder="素材id">
      </el-input>
   </el-form-item>
  1. 点击el-table行的任意位置选中当前行
<tabulation :search="false" :autoRequest="false" tableExpand tableSelection ref="tabutable
        @rowClick="handleRowClick">
         <template slot="col-id" slot-scope="{row}">
         ...
  methods: {
    ...mapActions([]),
    handleRowClick(row, column, event) {
      this.$refs.tabutable.toggleRowSelection(row)
    },
    ...
   }
   1. ref rowClick(row-click) toggleRowSelection