mai852852 发布的文章

ssh-keygen -t rsa -C "email@example.com"如果没有特殊要求,一路敲回车,即可生成SSH RSA秘钥
运行命令 cat ~/.ssh/id_rsa.pub 查看自己的公钥
将返回的结果复制,然后将生成的公钥添加到远程仓库账户设置下的SSH秘钥
仓库设置完成后将SSH私钥添到ssh-agent的高速缓存中。运行一下命令
ssh-add ~/.ssh/id_rsa
然后就可以使用SSH的方式拉取提交代码了。
如果执行ssh-add命令 出现Could not open a connection to your authentication agent的错误提示。
则先运行ssh-agent bash后 再运行添加命令

vue实现双向数据绑定的核心方法是
Object.defineProperty()

Object.defineProperty() 方法会直接在一个对象上定义一个新属性,或者修改一个对象的现有属性,并返回此对象。

vue.ls.on 监听不生效
在vue-ls.js 中修改即可实现数据监听
在vue-ls.js 文件中搜索key: "set" 定位到插件的set方法 进行重写覆盖

{
      key: "set",
      value: function set(name, value) {
        var expire = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
        var stringifyValue = JSON.stringify({
          value: value,
          expire: expire !== null ? new Date().getTime() + expire : null
        });

        let oldValue=JSON.parse(this.storage.getItem(this.options.namespace + name)).value;
        
        this.storage.setItem(this.options.namespace + name, stringifyValue);

        listeners[this.options.namespace + name].forEach(e=>{
          e(value,oldValue)
        })

      }

不知什么原因导致绑定的storage事件监听不触发,所以进行手动触发

在使用table组件时 遇到了一个问题
需求时点击行元素时 为当前行添加一个激活状态
此时 需要用到自定义行customRow

官方文档

customRow 用法 #
适用于 customRow customHeaderRow customCell customHeaderCell。遵循Vue jsx语法。

<Table
customRow={(record) => {
return {
  props: {
    xxx... //属性
  },
  on: { // 事件
    click: (event) => {},       // 点击行
    dblclick: (event) => {},
    contextmenu: (event) => {},
    mouseenter: (event) => {},  // 鼠标移入行
    mouseleave: (event) => {}
  },

};
)}
customHeaderRow={(column) => {
return {
  on: {
    click: () => {},        // 点击表头行
  }
};
)}
/>

介绍的相对来说 太过于笼统
以下是我的代码

<template>
  <div class="outer">
      <a-table :customRow="row" :rowClassName="choose" :columns="columns" :dataSource="data">
        <a slot="name" slot-scope="text">{{text}}</a>
      </a-table>
    </div>
</template>

<script>
import Table from "ant-design-vue/lib/table";
const columns = [
  {
    title: "姓名",
    dataIndex: "name",
    key: "name",
    scopedSlots: { customRender: "name" }
  },
  {
    title: "年龄",
    dataIndex: "age",
    key: "age"
  }
];

const data = [
  {
    key: "1",
    name: "John Brown",
    age: 32
  },
  {
    key: "2",
    name: "Jim Green",
    age: 42
  },
  {
    key: "3",
    name: "Joe Black",
    age: 32
  }
];
export default {
  name: "Test",
  components: {
    aTable: Table
  },
  data() {
    return {
      data,
      columns,
      key: data[0].key
    };
  },

  methods: {
    row(record){
      const that=this;
      return {
        on:{
          click(){
            that.key=record.key;
          }
        }
      };
    },
    choose(record) {
      if (record.key === this.key) {
        return "current";
      } else {
        return "";
      }
    }
  }
};
</script>
<style>
.outer {
  width: 600px;
  margin: 0 auto;
}
.current {
  background: pink;
}
</style>

customRow用来自定义行,使用rowClassName配合 即可实现table组件行动态添加类名 从而实现行激活/选中的效果