### Version 3.2.20 ### Reproduction link [codesandbox.io](https://codesandbox.io/s/musing-gates-n5wsn?file=/src/App.vue) ### Steps to reproduce - App.vue call 2 custom elements, The first directly, and the 2nd after onMounted lifecycle. - Open codesandbox console.log : the first-one is correct, externalid attribute is number but the 2nd is string ### What is expected? console.log(props) : externalid is number `{booleanAttr: true, language: "de", externalid: 4339870}` ### What is actually happening? console.log(props) : externalid is string `{booleanAttr: true, language: "de", externalid: "4339870"}` <!-- generated by vue-issues. DO NOT REMOVE -->