日常代码记录吖

日常代码记录~

  1. QS方法 (构造/结构地址栏参数)

    使用方法

    npm install qs
    import qs from 'qs’
    
    qs.stringify()是将对象 序列化成URL的形式,以&进行拼接
    qs.stringify({ a: ['b', 'c', 'd'] });
    // 'a[0]=b&a[1]=c&a[2]=d'
    
    qs.parse()是将URL解析成对象的形式
    qs.parse('a=b&c=d');
    // {a:'b',c:'d'}
    
    
  2. 静态资源引用总结

    最近用之前的老项目打包之后控制台它爆了一个奇奇怪怪的错误,如下:
    Uncaught SyntaxError: Unexpected token ‘<’
    在这里插入图片描述
    一定有人遇到吧~其实本以为是token的问题 其实是静态资源引入找不到路径的问题。
    public 一般存放公共静态资源
    src/assets 一般存放全局静态资源
    pages/images 一般存放当前文件夹需要的静态资源

    如何引入:
    1.如果在/public目录下的静态图片,可以直接输入绝对路径,假设/public/yay.jpg,访问方式如下:

    <img src="/yay.jpg"  />    // 注意:以上必须构建后在dist中才能看到。
    

    2.在/src/assets 和 /src/pages/ 目录下的图片,不能通过输入绝对路径访问,必须先import导入或者require导入,才能访问。
    比如 /src/assets/yay.jpg

    import yayImg from '/src/assets/yay.jpg';
    <img src={yayImg} />
    <img src={require('/src/assets/yay.jpg')}>
    

    为什么会这样呢?主要是因为构建时,/public目录下的文件会原样复制到/dist/目录下,而/src/assets/ 和 /src/pages/目录下的文件会被改名并复制到/dist/下。

  3. git/安装包/vscode快捷键等

    • git输入错误密码之后 不弹出 账号密码弹框解决办法
      设置 - 控制面板 - windows凭据 - 删除凭据
    • clac(100% - 70px) 设置高度宽度
    • git 存储
      git stash list
      有的话先git stash clear
      git stash
      git checkout develop_edj
      git commit -m ‘说点什么’
      git pull
      git push
      git checkout develop
      git stash pop
      git更新本地分支 命令
      git fetch origin
    • vscode 快捷键
      快速整理代码格式 Alt+shift+f
      选中光标到行首/行尾 shift+Home/End
      下一个匹配的也被选中 Ctrl+D
      回退光标 Ctrl+U
      当前行向下移动一行 alt+down ↓
      当前行向下复制一行 alt+shift+down ↓
      向右拆分 CTRL +
      文件切换 CTRL + TAB
      停止npm CTRL + C
      清空控制台输出 CTRL + K
    • 引入文件 符号
      @ src根目录 需配置
      ./ 当前目录,同级目录下
      …/ 上一级目录
      / 根目录
    • 快速删除node_modules
      1.安装 npm install -g rimraf
      2.删除 rimraf node_modules (当前文件夹下)
    • npm包相关
      版本包为什么有的^有的没有?
      截图看出有的依赖包带了^有的没带,这时候不懂的小明就会问了,这是为啥呀?没错我就是那个小明,然后我就去查了下,听我狡辩。
	^2.3.1 ^会匹配最新的大版本依赖包,2.3.1会匹配所有2.x.x的包,但不包括3.x.x
	~2.3.1 ~会匹配最近的小版本依赖包,2.3.1会匹配所有2.3.x的包,但不包括2.4.x
	2.3.1 固定版本,安装的时候不会更新其他版本
  1. React+typescript

    • Typescript类型断言
      1.尖括号形式:< string>value
      2.as形式:value as string
  2. 小程序相关

    • wx:key=“idx” idx 为默认index
      当报wx:key错误的时候 要么是wx:key没有定义 要么是请求所得到的的数据为空或者null。
    • scroll-view使用的坑
      scroll-view标签要加上css white-space:nowrap 【横向滑动的时候】
      后面的item 要加上css display:inline-block
    • 小程序扫码分享传的参数
  3. vue相关

    • 计算属性computed
      我们可以使用 methods 来替代 computed,效果上两个都是一样的,
      但是 computed 是基于它的依赖缓存,只有相关依赖发生改变时才会重新取值。
      而使用 methods ,在重新渲染的时候,函数总会重新调用执行。
    <div id="app">
      <p>原始字符串: {{ message }}</p>
      <p>计算后反转字符串: {{ reversedMessage }}</p>
    </div>
     
    <script>
    var vm = new Vue({
      el: '#app',
      data: {
        message: 'Runoob!'
      },
      computed: {
        // 计算属性的 getter
        reversedMessage: function () {
          // `this` 指向 vm 实例
          return this.message.split('').reverse().join('')
        }
      }
    })
    </script>
    

    computed 属性默认只有 getter ,不过在需要时你也可以提供一个 setter :

    var vm = new Vue({
      el: '#app',
      data: {
        name: 'Google',
        url: 'http://www.google.com'
      },
      computed: {
        site: {
          // getter
          get: function () {
            return this.name + ' ' + this.url
          },
          // setter
          set: function (newValue) {
            var names = newValue.split(' ')
            this.name = names[0]
            this.url = names[names.length - 1]
          }
        }
      }
    })
    // 调用 setter, vm.name 和 vm.url 也会被对应更新
    vm.site = '菜鸟教程 http://www.runoob.com';
    document.write('name: ' + vm.name);
    document.write('<br>');
    document.write('url: ' + vm.url);
    
    • vue post请求
    this.$.autoAjax('post', ROUTES.POST.user.h5.sendcode, {
            name: this.forget_code,
            type: 'mobile'
          }, {
            ok: v => {
              this.toast = !this.toast;
              this.toastType = 'text';
              this.toastText = LANG['验证码已发送'] || '验证码已发送';
            },
            error: v => {
              let xhr = JSON.parse(v.responseText);
              this.toast = !this.toast;
              this.toastType = 'warn';
              this.toastText = LANG[xhr.message] || xhr.message;
            }
          }, {
            "Content-Type": "application/json"
          });
    
    • 请求两个接口
      detail(row, refresh) {
        Promise.all([api.auditMemberGetout({ id: row.id, user_id: row.user_id }), api.detailMemberGetout({ id: row.id, m_base_id: 66 })]).then(
          ([res1, res2]: any[]) => {
            if (res1.code == 0 && res1.data && res2.code == 0 && res2.data) {
              this.detailConfig.detailTableData = res1.data
              this.detailConfig.editForm = res2.data
              this.detailVisible = true
            } else {
              this.$message.error(res1.msg + ' | ' + res2.msg)
            }
          }
        )
      }
    
    • vm.$nextTick()
    Vue.component('example', {
      template: '<span>{{ message }}</span>',
      data: function () {
        return {
          message: '没有更新'
        }
      },
      methods: {
        updateMessage: function () {
          this.message = '更新完成'
          console.log(this.$el.textContent) // => '没有更新'
          this.$nextTick(function () {
            console.log(this.$el.textContent) // => '更新完成'
          })
        }
      }
    })
    
    • keep-alive
      keep-alive带来的缓存问题
      可以用activated()此生命周期来 解决 路由传过来的值 不更新 不重新发请求
      //清除 keep-alive 影响的缓存
      activated(){
      this.id = this.$route.query.id
      this.requestList()
      }

    • 构造函数里面声明变量

      constructor(props) {
            super(props);        
            let query = window.location.search.indexOf('id=') > -1 ? window.location.search.split('&')[0].split('=')[1] : 0;
            this.state = {
                activeIndex:query
            };
        }
    
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值