帮忙看看 Vue 的问题

2021-12-13 21:05:17 +08:00
 longkas239

环境 vite + vue3 + element plus, 组件中的两端 script 代码,这两处 setup 看日志有一处没有运行,是正常的吗,app 引用的时候提示找不到 "form"

App.vue

<script setup>
	import moment from 'moment/min/moment-with-locales'
    import { ref, reactive, toRefs, toRef } from 'vue'
    console.log("setup from setup");
</script>


<script>
    import { reactive, toRefs } from 'vue';
    export default {
        setup() {
            console.log("setup from default");
            const state = reactive({
                form: {
                    userName: '',
                    newPass: '',
                }
            });
            return {
                ...toRefs(state),
            }
        },
</script>

2299 次点击
所在节点    Vue.js
7 条回复
vacnt7
2021-12-13 22:34:58 +08:00
return 里面直接 return state 就好了,不是很清楚为什么还要再去 refs 一次 state ,上面的 reactive 已经将 form 初始化为响应式变量了
chengxy
2021-12-13 22:52:48 +08:00
@vacnt7 #1 估计是要解构,不想使用 state.form 的方式。
dengshen
2021-12-14 00:12:06 +08:00
默认导出覆盖 setup 了
gouflv
2021-12-14 06:06:59 +08:00
vue3 的代码风格一言难尽
kensoz
2021-12-14 07:51:06 +08:00
longkas239
2021-12-14 10:09:02 +08:00
这个问题是解决了,但是后面遇到了诡异的其他 bug ,官方说两种 script 可以混用,但是 antd 和 elementplus 都不建议使用,我提 bug 到 vite 然后转到 element 再转到 vue ,对于使用者根本不知道问题会出现在哪一端,而且开发模式正常只有打包部署出问题,调试完这个程序我是不想碰前端项目或者考虑换个扎实点的前端框架了
tolking
2021-12-14 16:28:01 +08:00
总有人不看文档.jpg

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/821969

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX