首页 新闻 会员 周边

vue3视图绑定

0
悬赏园豆:10 [已解决问题] 解决于 2023-09-14 11:30

用的是vue3 + typescript

export class SystemEngine {
    ...
    static msgList  = ref<String[]>([]);
    ...
}

为什么我在模板上使用的时候也要加value?

          <div class="message-box margin-top-12">
            <div v-for="(msg, index) in SystemEngine.msgList.value" :key="index">
              {{ msg }}
            </div>
          </div>

注意,在模板中使用 ref 时,我们不需要附加 .value。为了方便起见,当在模板中使用时,ref 会自动解包 (有一些注意事项)。


如果不加.value,输出就像这样:

复制粘贴机器人的主页 复制粘贴机器人 | 小虾三级 | 园豆:702
提问于:2023-09-14 09:31
< >
分享
最佳答案
0

在模板中解包的注意事项

在模板渲染上下文中,只有顶级的 ref 属性才会被解包。

// 静态字段可以类比这种写法,不会被解包
const object = { id: ref(1) }

参考文档写法的话,那就是

const { msgList } = SystemEngine;

<div class="message-box margin-top-12">
  <div v-for="(msg, index) in msgList" :key="index">
    {{ msg }}
  </div>
</div>
复制粘贴机器人 | 小虾三级 |园豆:702 | 2023-09-14 11:30
其他回答(1)
0
收获园豆:10
红色的风 | 园豆:76 (初学一级) | 2023-09-14 11:14
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册