整个nvue代码:
<template>
<view class="page">
<cus-gap height="100"></cus-gap>
<view class="search z-flex">
<uni-search-bar :radius="50" placeholder="输入关键字进行搜索" @input="onSearch" :cancelButton="false"></uni-search-bar>
</view>
<list class="list" :show-scrollbar="false">
<cell class="item z-flex z-row-center" v-for="item in selectList" :key="item.id" @click="select(item)">
<text :class="{'z-color': $store.state.store && $store.state.store.id === item.id}" class="z-font-xl">美猴王{{ item.id }}</text>
</cell>
</list>
</view>
</template>
<script>
const app = getApp().globalData
export default {
data () {
return {
list: [],
selectList: []
}
},
onLoad () {
this.getList()
},
methods: {
/**
* 搜索
*/
onSearch (value) {
let len = this.list.length
let arr = []
if (value) {
for (var i = 0; i < len; i++) {
if (this.list[i].name.match(value)) {
arr.push(this.list[i])
}
}
this.selectList = arr
} else {
this.selectList = this.list
}
},
/**
* 获取门店列表
*/
getList () {
app.$z.loading.show('加载中')
app.$z.api.getStoreList().then(res => {
if (res.code == 200) {
this.list = res.data
this.selectList = res.data
}
this.loading = false
})
},
/**
* 选中门店
*/
select (item) {
let store = {
name: 'store',
value: item
}
this.$store.commit('$commit', store)
uni.switchTab({
url: '/pages/mine/index'
})
}
}
}
</script>
<style scoped lang="scss">
.search {
padding: 0 30rpx;
position: fixed;
top: 0;
width: $z-width;
height: 100rpx;
}
.list {
flex: 1;
.item {
height: 100rpx;
background-color: #ffffff;
border-bottom: 1rpx solid $z-border-color;
}
}
</style>
问题描述:
就是在nvue页面中,对属性重新赋值的时候,页面重新渲染会把原来存在的一个一个的移除掉,比如说一个arr数组原来有50条数据,然后我把arr这个数组变成只有一条数据了,然后列表就会把另外49条数据一个一个删除,造成的体验很不好,有什么办法解决吗。