VUE_TYPESCRIPE遇到问题

  • rem 插件
    *(yarn add lib-flexible) vscode 工作区域设置75px
  • vant 按需引入
    const tsImportPluginFactory = require('ts-import-plugin')
    config.module
    .rule('ts')
    .use('ts-loader')
    .loader('ts-loader')
    .tap((options) => {
    options.getCustomTransformers = () => ({
    before: [tsImportPluginFactory({
    libraryName: 'vant',
    })],
    })
    return options
    })
    * 
    
  • 去除默认样式插件
  • 设置ios键盘隐藏之后,页面回弹
    // 加上ios 判断 键盘隐藏的时候 页面回弹
    if (/(iPhone|iPad)/.test(navigator.userAgent)) {
      document.body.scrollIntoView(false)
    }
    
  • 从一个对象一个分割出
    const { phone, captcha, address } = this.form
    
  • Object.assign() 方法用于将所有可枚举属性的值从一个或多个源对象复制到目标对象。它将返回目标对象。
  • vue 组件里引less文件前面加@(小写)
    @import "~@/style/curing/curing.less";
    
  • 只能输入数字
    • input 加pattern="[0-9]*"
  • css:active伪类在手机上不起作用解决

mound(){
document.body.addEventListener('touchstart', function () { });
}
```

  • 移动端判断安卓or ios 是否是在微信中打开 (在vue里写法 新建一个.ts文件)

const userAgent = navigator.userAgent || navigator.vendor

const platform = (agent: string) => {
let os = 'unknown'
if (/android/i.test(agent)) {
os = 'Android'
} else if (/iPad|iPhone|iPod/.test(agent)) {
os = 'iOS'
}
const wechatMatch = agent.match(/MicroMessenger/i)
const isWechat = wechatMatch && wechatMatch[0].toLowerCase() === 'micromessenger'
return {
os,
isWechat,
}
}

export default platform(userAgent)
组件直接调用就行 用法(platform.isWechat)

* es6 some 遍历方法的使用

const res = this.lendDataList.some(item => item.storage_code === data.storage_code)
if (res === false) {
this.lendDataList.unshift(data)
} else {
this.$message.error('已有数据了~')
}

* watch 的使用

value = 1
@Watch('value', { immediate:true })
change() {
console.log(this.value)
}
// 同步函数只会执行一次按顺序执行,异步的不会按顺序执行
// h 任务 setTimeout MessageChannel比setTimeout 0 要快
// w 任务promise dom h -》w -》h-》w 。。。。
// 第一个h任务执行完之后获取dom元素
// $nextTick dom 已经是渲染完毕了
// immediate 默认是false 首次执行不会监听到值, 想监听值 改成true

created() {
setTimeout(() => {
this.value = 2
}, 1000)
}

beforeMount() {
this.value = 3
}

mounted() {
setTimeout(() => {
this.value = 4
}, 300)
}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容