Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Vue3 Script Setup?#2653

Unanswered
ccqgithub asked this question inQ&A [2.x]
Dec 21, 2021· 1 comments· 6 replies
Discussion options

我看文档上,vue需要通过observer包装组件,但是针对Vue3 的script setup,该怎么实现?

script setup 组件样式:

<template><div>{{ test }}</div></template><scriptsetup>consttest=1;</script>
You must be logged in to vote

Replies: 1 comment 6 replies

Comment options

在当前组件内应该是无解的。不过可以试试另起一个文件导出

importComponentfrom'./component.vue'import{observer}from'@formily/reactive-vue'exportWrappedComponent=observer(Component)
You must be logged in to vote
6 replies
@ccqgithub
Comment options

在当前组件内应该是无解的。不过可以试试另起一个文件导出

importComponentfrom'./component.vue'import{observer}from'@formily/reactive-vue'exportWrappedComponent=observer(Component)

我看了看代码,好像可以用 useObserver 这个hooks?observer 其实也是在setup代码执行之前调用了useObserver。

@MisicDemone
Comment options

噢对,可以,我给忘了😅

@knight-peter
Comment options

在当前组件内应该是无解的。不过可以试试另起一个文件导出

importComponentfrom'./component.vue'import{observer}from'@formily/reactive-vue'exportWrappedComponent=observer(Component)

我看了看代码,好像可以用 useObserver 这个hooks?observer 其实也是在setup代码执行之前调用了useObserver。

请问useObserver这个hooks是在哪个文档里的,找不到这个hooks。

@eric-gitta-moore
Comment options

@knight-peter 没有文档🤣,只有代码

@eric-gitta-moore
Comment options

还发现个更好点的办法,把 vue proxy之后的reactive再丢给 mobx,mobx makeProxy 之后再塞到 createForm({values: 这里})
那么 formily 写入数据就会同步 mobx同时也会写入到 vue ref里面。然后就不需要每个组件都写 useObserver() 了

参考:https://stackblitz.com/~/github.com/eric-gitta-moore/formily-vue-bind-pinia?file=src/components/HelloWorld.vue&view=editor

constsource=ref({})// 再包一层 proxy,让 formily 往这里写就完事了。把 vue 的 ref 作为 formily 的数据源constval=observable(source.value);console.log(`isObservable`,isObservable(val));constform=createForm({values:val,});
Sign up for freeto join this conversation on GitHub. Already have an account?Sign in to comment
Labels
None yet
5 participants
@ccqgithub@knight-peter@muuyao@MisicDemone@eric-gitta-moore

[8]ページ先頭

©2009-2025 Movatter.jp