vue3+ts开发系统 --setup
2022/2/9 6:14:53
本文主要是介绍vue3+ts开发系统 --setup,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
vue3 中,使用setup
语法糖显然在很大程度上简便了开发,不需要那么多的return
啦,引入components
不需要再次导出等等。在使用过程中,有一些与createApp
不同的地方,做个记录。
- 迷惑的
defineProps
defineProps
是在setup
中获取props
的内置方法,不需要import
就可以直接使用。使用方式为const props = defineProps<{msg: string}>()
。这种方式要求有类型定义,即上方的<{msg: string}>
,否则还是乖乖用回props.msg
。- 官方文档提到,对于
props
,结构将会失去响应式,所以在template
中使用属性,可以采用{{props.msg}}
,或者使用const msg = toRefs(props)
解构获取响应式变量。 - 编码时发现,在
template
中,可以直接使用{{msg}}
的方式使用props
变量,当父组件中的msg
变量变化时,子组件会重新渲染msg
,也就是说直接在子组件的template
中直接引入是会有响应式的,不需要props.msg
的方式。 - 那解构失效的情况是?在子组件中使用
const msgIn = ref(props.msg)
,template
中使用{{msgIn}}
时,父组件中改变msg
,子组件渲染数据不会改变。 - 写的时候对
vue3
不熟悉,其实后者很好理解,父组件的msg
改变时,获取到的props.msg
是不会重新获取的,ref
自然是监听不到其变化的,于是msgIn
显然不会改变。希望在script
中使用解构变量还是得靠toRefs
,或者使用onWatch
监听。
- 父组件使用子组件
ref
,怎么使用子组件方法?- 写着写着发现
ref.show()
时发现没有methods
属性,没法引用。事实上和setup
方法中导出是一致的,使用defineExpose
即可。
- 写着写着发现
- 关于
vue
文件内容结构顺序- 开发中发现比起
template
-script
-style
的顺序,script
-template
-style
的功能模块顺序更方便于开发
- 开发中发现比起
这篇关于vue3+ts开发系统 --setup的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-16Vue3资料:新手入门必读教程
- 2024-11-16Vue3资料:新手入门全面指南
- 2024-11-16Vue资料:新手入门完全指南
- 2024-11-16Vue项目实战:新手入门指南
- 2024-11-16React Hooks之useEffect案例详解
- 2024-11-16useRef案例详解:React中的useRef使用教程
- 2024-11-16React Hooks之useState案例详解
- 2024-11-16Vue入门指南:从零开始搭建第一个Vue项目
- 2024-11-16Vue3学习:新手入门教程与实践指南
- 2024-11-16Vue3学习:从入门到初级实战教程