Vue2 &Vue3混编注意事项

232 阅读1分钟

1、Vue2生命周期写法在vue3环境 onLoad() { 可以打印this {"userName": "",} } onHide: () => { console.log("onHide",this.formData) onHide, undefined }, 能用,但是函数中的this不能识别,会打印:TypeError: globalThis.XXX is not a function

2、vuex store的引入 首先一定注意 userInfo: lifeData.userInfo ? lifeData.userInfo : {}, ok ,默认值为‘’不行,使用了ts后过不了会报错,表现是存不上 建议直接使用vue3的写法,并封装函数挂到uni.$u上,方便直接调用,永久化保存用的uniapp自带的

//案例为存储userInfo对象
vue2
import store from '@/store/index.js'
userInfo['user']=params.userName
userInfo['pass']=params.password
store.commit('$uStore',{
        name: 'userInfo',value: userInfo
})
或者
import { useStore } from "vuex"
data定义store:null
onLoad中给store赋值,使其全局使用
this.store = useStore()
this.store.commit('$uStore',{
    name: 'userInfo',
    value: {
        user:this.formData.userName,
        pass:this.formData.password
    }
})
vue3页面标准写法
import { useStore } from "vuex"
userInfo['user']=params.userName
userInfo['pass']=params.password

store.commit('$uStore',{ 
        name: 'userInfo', value: userInfo
})

3、使用uView的变化 原来是this.u.XX变成了uni.u.XX变成了 uni.u.XX 即便源代码是vue2,且能跑通,到了vue3的项目统统要改