Vue——数组操作

博客围绕Vue数组操作展开,介绍了通过点击按钮可实现数组的排序、筛选和移除功能,聚焦于Vue在数组操作方面的应用,属于信息技术中前端开发领域。

数组操作

点击按钮实现排序功能

<div id="app">
			<button @click="sortGoods">排序</button>
			<ul>
				<li v-for="good of goods">
					{{good.name}}---{{good.price}}---{{good.count}}
				</li>
			</ul>
		</div>
		<script type="text/javascript">
			var app = new Vue({
				el:"#app",
				data:{
					goods:[
						{
							name:'ipone',
							price:5000,
							count:5
						},
						{
							name:'华为',
							price:3000,
							count:8
						},
						{
							name:'小米',
							price:2000,
							count:15
						}
					]
				},
				methods:{
					sortGoods:function(){
						this.goods = this.goods.sort(function(x,y){
							return x.price-y.price
						});
					}
				}
			})
		</script>

点击按钮实现筛选功能

<div id="app">
			<button @click="filterGoods">筛选</button>
			<ul>
				<li v-for="(good,index) in goods">
					名称:{{good.name}}---价格: {{good.price}}---数量: {{good.count}}
				</li>
			</ul>
		</div>
		<script type="text/javascript">
			var app = new Vue({
				el:"#app",
				data:{
					goods:[
						{
							name:'ipnone',
							price:8000,
							count:12
						},
						{
							name:'华为',
							price:5000,
							count:5
						},
						{
							name:'vivo',
							price:3000,
							count:20
						},
						{
							name:'小米',
							price:3000,
							count:50
						},
						{
							name:8848,
							price:10000,
							count:2
						}
						
					]
				},
				methods:{
					filterGoods:function(){
						this.goods = this.goods.filter(function(element){
							if(element.price>5000){
								return element;
							}
						})
					}
				}
				
			})
		</script>

点击按钮实现移除功能

<div id="app">
			<ul>
				<li v-for="(good,index) in goods" :key="good.name">
					名称:{{good.name}}---价格: {{good.price}}---数量: {{good.count}}
						<button @click="deleteGood(index)">移除</button>
				</li>
			</ul>
		
		
		</div>
		<script type="text/javascript">
				var app = new Vue({
				el:"#app",
				data:{
					goods:[
						{
							name:'ipnone',
							price:8000,
							count:12
						},
						{
							name:'华为',
							price:5000,
							count:5
						},
						{
							name:'vivo',
							price:3000,
							count:20
						},
						{
							name:'小米',
							price:3000,
							count:50
						},
						{
							name:8848,
							price:10000,
							count:2
						}
						
					]
				},
				methods:{
					deleteGood:function(index){
						this.goods.splice(index,1);
					}
					
				}
				})
		</script>
### Vue.js 中监听数组变化 #### Vue 2 监听数组特定项的变化 在 Vue 2 中,JavaScript 对对象和数组变更的侦测存在一定的局限性。为了能够有效地监听数组中的某个具体位置的数据变动,可以采用 `this.$set` 方法来修改数组元素,从而触发视图更新[^1]。 ```javascript new Vue({ el: '#app', data: { items: ['apple', 'banana'] }, methods: { updateFirstItem(newVal) { this.$set(this.items, 0, newVal); } }, watch: { items: { handler(newValue, oldValue) { console.log('items changed from ', oldValue, ' to ', newValue); }, deep: true // 深度监视整个数组结构内的更改 } } }); ``` 上述代码展示了如何通过 `$set` 函数设置第一个项目的值并确保该操作能被观察者捕捉到。同时开启了深度监听模式以便追踪内部属性的变化[^4]。 #### Vue 3 使用 Watcher 监控数组变化 对于 Vue 3 而言,在合 API 下提供了更灵活的方式来进行状态管理以及事件监听。下面的例子说明了怎样利用 Composition API 实现同样的功能——监听数组及其成员的变化[^3]: ```javascript import { ref, watch } from "vue"; export default { setup() { const items = ref(['orange', 'grape']); function addItem(item) { items.value.push(item); } watch(items, (newValue, oldValue) => { console.log(`Array has been updated`, newValue, oldValue); }, {deep:true}); return { items, addItem }; } }; ``` 这里使用了 `ref()` 创建了一个可响应式的数组实例,并借助于 `watch()` 宏观上监测其任何改动;同样地启用了深层数组跟踪选项 `{deep:true}` 来获取详细的变更记录[^2]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值