vue 基础

93 阅读1分钟
  • 组件通讯
  • 注册组件
  •   为什么要拆分组件?
      	不可能吧所有的功能都写到App.vue中
      	封装组件的目的:
      		复用
      		可维护
    
  •   1. 把独立的结构封装到一个.vue文件中
    
  •   2. 注册组件
      	全局注册
      		在main.js中通过Vue.component(名字, 组件)
      		所有组件中都能使用
      	局部注册
      		在components配置中局部注册组件
      		只有在当前组件中可以使用
    
  •   3. 组件样式冲突问题
      	默认情况,组件的样式会影响到所有的组件
      	给style标签添加scoped属性,可以保证组件的样式只影响当前组件本身
      	原理
      		给style中所有的选择器添加一个额外的data属性
      		给组件模板中所有的结构也添加一个额外的属性
    
  • 组件通讯
  •   为什么?
      	因为每个组件的数据都是独立的
      	但是开发中有需求去使用别的组件的数据
    
  •   父传子
      	<Son :money="money" a="b"></son>
      	props: ['money', 'a']
    
  •   子传父
      	<Son @del="del"></son>
      	this.$emit('del', 参数)
    
  •   todos功能
    
  •   todos
      	全选反选
      	数据的持久化
      	任务的筛选功能
    
  •   event-bus
      	1. 创建事件总线
      		const bus = new Vue()
      	2. 订阅事件
      		在组件created中订阅事件
      		eventBus.$on('事件名字', 回调函数)
      		注意:回调函数要使用箭头函数
      	3. 发布事件
      		eventBus.$emit(事件名, 参数)
      		注意:触发的事件名和监听的事件名一致