vue3 html模版判断与赋值同时进行?

<img v-if="isXxx" :src="getSrc"/>
<xx v-else/>

如上结构,isXxxgetSrc的内容基本相同,而且是个耗时查询,实在没必要执行两遍,src能使用v-if的结果吗?
或者有别的写法?
谢谢

阅读 1.9k
3 个回答

这样写怎么会执行两次呢

const isXxx= ref(false)
const getSrc = ref('')

const loadSrc=async ()=>{
   const result =await 耗时的查询()
   if(reslut){ //假设这里满足你要的条件了
   isXxx.value=true
   getSrc='xxxxx'
  }

}

//在需要的地方调用loadSrc比如在mounted的时候

可以啊,把返回结果赋值给一个变量就行,默认是空字符串。
这样结果返回之前就不会渲染,返回之后如果有返回值就能直接渲染了。

这样写没有毛病一目了然。
非得这样写吗
<img :src="isXxx ? getSrc : xxxx"/>

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题