vue2视图不更新不渲染问题解决

Vue2通过用Object…defineProperty来设置数据的getter和setter,从而实现数据和视图改变的监。对于数组和对象,或者深层数据来说,getter和setter无法检测到它们内部的变化,就会导致视图不更新不渲染。

原理

每个组件实例都有相应的 watcher 实例对象,它会在组件渲染的过程中把属性记录为依赖,之后当依赖项的 setter 被调用时,会通知 watcher 重新计算,从而致使它关联的组件得以更新。

受现代 JavaScript 的限制 (而且 Object.observe 也已经被废弃),Vue 不能检测到对象属性的添加或删除。由于 Vue 会在初始化实例时对属性执行 getter/setter 转化过程,所以属性必须在 data 对象上存在才能让 Vue 转换它,这样才能让它是响应的。

vue3已经不会有这个问题

【举个栗子】:

      <div
        v-for="(workItem, index) in workItemList"
        :key="index"
        class="work-item"
      > 
        <div class="check-box">
            <van-checkbox-group
              v-model="workItem.valArr
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Vue航行视图盘是一种交互式UI组件,用于展示导航菜单或选项卡。它通常由一个圆形菜单和一组子菜单组成。用户可以通过向上或向下滑动手势来旋转圆形菜单,从而选择不同的子菜单。 在Vue中,可以使用第三方库如vue-navigation-bar或vue-circular-menu来实现航行视图盘。这些库提供了简单易用的API和样式定制选项,使得开发者可以轻松地创建自定义的航行视图盘。例如,以下代码演示了如何使用vue-navigation-bar创建一个简单的航行视图盘: ``` <template> <div> <navigation-bar> <nav-item v-for="item in items" :key="item.id" @click="selectItem(item)"> {{ item.label }} </nav-item> </navigation-bar> </div> </template> <script> import { NavigationBar, NavItem } from 'vue-navigation-bar' export default { components: { NavigationBar, NavItem }, data() { return { items: [ { id: 1, label: 'Home' }, { id: 2, label: 'About' }, { id: 3, label: 'Contact' } ] } }, methods: { selectItem(item) { // 处理选项选择事件 } } } </script> ``` 在上面的代码中,我们使用了vue-navigation-bar库中的NavigationBar和NavItem组件来创建航行视图盘。通过在NavigationBar中使用v-for指令和NavItems组件,我们可以很容易地动态生成子菜单项。我们还提供了一个selectItem方法来处理选项选择事件。 总的来说,Vue航行视图盘是一个非常有用的UI组件,可以帮助用户快速访问和导航应用程序中的不同功能和页面。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值