JW进阶小技巧:告别小白,优雅拿捏基础操作

一、核心进阶点1:数据绑定优化

1. 双向绑定简化写法

javascript 复制代码
  
// 原始写法
this.$set(this.form, 'name', '掘金er')
// 进阶简化(直接赋值+自动响应)
this.form.name = '掘金er'
// 数组更新优雅操作
this.list.push(...[4,5,6]) // 扩展运算符批量添加

2. 计算属性缓存妙用

javascript 复制代码
  
computed: {
  // 自动缓存,依赖不变不重复计算
  filterList() {
    return this.list.filter(item => item.status === 1)
  }
}

二、核心进阶点2:事件处理升级

1. 事件传参简洁写法

html 复制代码
<!-- 无需多余括号,默认传事件对象 -->
<button @click="handleClick">点击</button>
<!-- 自定义传参+事件对象 -->
<button @click="handleBtn(1, $event)">传参点击</button>
 
 
javascript
  
methods: {
  handleClick(e) {
    console.log(e.target)
  },
  handleBtn(id, e) {
    console.log(id, e)
  }
}

2. 事件修饰符组合使用

html 复制代码
  
<!-- 阻止冒泡+阻止默认行为 -->
<a @click.stop.prevent="handleLink">跳转</a>
<!-- 仅触发一次 -->
<button @click.once="handleOnce">只点一次</button>

三、核心进阶点3:组件通信基础进阶

  1. 子传父简化(自定义事件)
html 复制代码
  
<!-- 子组件 -->
<button @click="$emit('sendData', '子组件数据')">传值</button>
<!-- 父组件 -->
<child @sendData="getSonData"></child>
javascript 复制代码
  
// 父组件
methods: {
  getSonData(data) {
    console.log(data) // 接收子组件数据
  }
}

2. 全局事件总线(简单跨组件)

javascript 复制代码
  
// 全局注册
Vue.prototype.$bus = new Vue()
// 发送组件
this.$bus.$emit('globalMsg', '全局消息')
// 接收组件
mounted() {
  this.$bus.$on('globalMsg', msg => {
    console.log(msg)
  })
}
相关推荐
薛定猫AI6 小时前
【深度解析】Gemma Chat 本地 AI 编程 Agent:Electron + MLX + 开源模型的离线 Vibe Coding 实战
javascript·人工智能·electron
全栈前端老曹6 小时前
【前端地图】多地图平台适配方案——高德、百度、腾讯、Google Maps SDK 差异对比、封装统一地图接口
前端·javascript·百度·dubbo·wgs84·gcj-02·bd09
笑虾6 小时前
Win10 修改注册表 让鼠标悬停PNG上时 tip 始终显示分辨率
开发语言·javascript·ecmascript
雾岛听风6917 小时前
JavaScript基础语法速查手册
开发语言·前端·javascript
用户2367829801687 小时前
从零实现 GIF 制作工具:LZW 压缩与 Median Cut 色彩量化
前端·javascript
棉猴7 小时前
Python海龟绘图之绘制文本
javascript·python·html·write·turtle·海龟绘图·输出文本
Highcharts.js8 小时前
线形比赛积分增长或竞赛图|Highcharts企业图表代码示列
开发语言·前端·javascript·折线图·highcharts·竞赛图
让学习成为一种生活方式8 小时前
大肠杆菌合成扑热息痛--对乙酰氨基酚--文献精读227
开发语言·前端·javascript
多秋浮沉度华年8 小时前
electron 初始使用记录
javascript·arcgis·electron
竹林8189 小时前
用 wagmi v2 + WebSocket 硬磕 NFT 上架失败:一个前端开发者踩过的实时状态同步坑
javascript·next.js