Vue.js。仅初始化数据绑定的最佳实践?
我有一个由Bootstrap管理的组件,特别是其中一个导航选项卡小部件,当您单击Bootstrap时,它会显示和隐藏 引导程序使用Vue.js。仅初始化数据绑定的最佳实践?,vue.js,initialization,Vue.js,Initialization,我有一个由Bootstrap管理的组件,特别是其中一个导航选项卡小部件,当您单击Bootstrap时,它会显示和隐藏 引导程序使用.active类跟踪单击的项目。在Vue中,我要将某个nav初始化为在页面加载时处于活动状态。但是,一旦完成,我希望Vue将.active类管理完全交给引导 <template> <li class="nav-item" v-if="toshow"> <a class="nav-link" v-bind:id="'nav_' +
.active
类跟踪单击的项目。在Vue中,我要将某个nav初始化为在页面加载时处于活动状态。但是,一旦完成,我希望Vue将.active
类管理完全交给引导
<template>
<li class="nav-item" v-if="toshow">
<a class="nav-link" v-bind:id="'nav_' + link"
:class="{ active: isActive }" :aria-expanded="isActive"
v-bind:href="'#'+link" data-toggle="tab" @click="onclick">
{{label_}}
<span v-if="badge" class="badge" :class="badge_level">{{badge}}</span>
<span v-if="dynamic_badge" class="badge" :class="badge_level" >{{badge_value}}</span>
</a>
</li>
</template>
v-once
不太合适,因为我只想禁用.active
的计算(徽章子项需要实时更新)
这个组件可以正常工作。我认为主要是因为这个.store.state.active_选项卡的值没有变化,所以Vue不会重新渲染。但充其量它看起来很脆
使用Vue仅设置某些变量的初始值,然后放弃控制,而不使用v-once
,最佳做法是什么?我只需访问a.nav-link
元素,并将.active
类直接添加到其类列表中
您可以向a.nav-lank
元素链接添加ref
属性,以便:
<a class="nav-link" ref="link" ...>
...
</a>
但是Vue是否会在需要重新渲染时立即返回并抓取数据.isActive
以填充.active
?在我的例子中,我认为我可以接受这一点。但是,假设该组件有另一个绑定属性/值,例如,{{record\u count}}
,该属性/值应保持活动并同步。如果更新了record\u count
的基础数据或存储源,则组件将重新呈现为record\u count
,这很好。但是active
也会根据数据再次更新。isActive
,不是吗?啊,好的,我现在明白了。您希望最初设置活动
类,但不绑定它。看到我的最新答案了吗。因此,基本上,避免绑定这种类型的用例,并在mounted
中初始化内容。有道理。
<a class="nav-link" ref="link" ...>
...
</a>
mounted() {
if (this.link === this.$store.state.active_tab) {
this.$refs.link.classList.add('active');
}
}