美文网首页
VUE复习 组件通信、vuex

VUE复习 组件通信、vuex

作者: Live_60c3 | 来源:发表于2018-11-09 09:14 被阅读0次

一、 常用指令:v-for,v-if,v-else,v-model
二、 绑定事件:@事件名 例如:@click
三、 绑定属性::属性名="值"
命名一个dom元素:ref="dom元素名称"
例如: <input ref="con">

四 自定义指令:把常用的domr操作封装一起,方便复用

五、 vue绑定class和style:

1.class绑定类

     <button 
             v-for="(item,index) in typeList.tabNav"
             @click="changeCon(index)"
             :class="{ 'active': index===currentIndex  }"
         >
            {{item}}
    </button>

2.style绑定类

     <button 
          v-for="(item,index) in typeList.tabNav"
          @click="changeCon(index)"
         :style="{ 'background': index===currentIndex?'#f00':'' }"
      >
          {{item}}
     </button>

六、组件通讯

1.组件作用:是一个独立的功能单元,包含:html,css,js逻辑部分
2.通讯方式


 第一种:父传子:props

  父传子时,通常要对数据类型做验证

 第二种:子传父:通过派发自定义事件,父级接收派发的事件来实现

   子组件先派发自定义事件:$emit
   
        例如:  this.$emit('childEvent', this.childValue)

   父组件监听:@自定义事件

     <footerCom :footerCom="num" @childEvent="handleEvent"></footerCom>




 第三种:兄弟(即非父子)之间

     1)Global Bus:建立一个空的vue做为桥梁,实现兄弟组件之间的通讯 
     
     第一步:创建一个空的vue做为兄弟组件的桥梁
     
        import Vue from 'vue';
        //创建一个空的Vue作为兄弟通讯的桥梁
        let bus=new Vue();
        export default bus;
    第二步:在A,B组件分别引入公共的Bus

        //引入bus
        import Bus from '../public/bus'

    第三步:在A组件发送

      Bus.$emit('toSub',this.v)

   第四步:在B组件接收(即监听):用$on来监听兄弟组件传过来的数据

          created() {
               // bus.$on('要监听的事件',回调函数)
               bus.$on('toSub',(v)=>{
    
                  // console.log(v)
                  this.str=v;
    
               })
            }

     7

【重点也是难点】 2)vuex:是另一个实现兄弟之间通讯的方式

, 第一点: vuex介绍: vuex官网:https://vuex.vuejs.org/zh/

 vuex 是什么 :Vuex 是一个专为 Vue.js 应用程序开发的状态管理工具。它采用集中式存储管理应用的所有组件的状态
 vuex适用场景:构建一个中大型单页应用
 vuex主要用于存储多个组件共享的数据(例如:登录状态,权限),如果数据只是某个组件,则不需要vuex

第二点:如何使用vuex  

   第一步:npm install vuex --save
   第二步: 创建一个store文件夹,在其中创建一个index.js文件 ,并添加如下代码:
    import Vue from 'vue'
    import Vuex from 'vuex'
    Vue.use(Vuex)
  第三步:具体使用
        1.添加state度暴露出去
            //初始要共享的数据源,相当于vue组件data中的数据
            const state={
                count:999
            }
            const store=new Vuex.Store({
                state
            });
            export default store;


        2.获取state
           在要获取的组件中,通过computed计算属性来获取到

            computed:{
              aa() {
                    return this.$store.state.count
                }
                    }
        3.通过actions,mutaitons改变statew

抛出一个问题?如何在组件中获取得到共享的数据呢??????

相关文章

  • VUE复习 组件通信、vuex

    一、 常用指令:v-for,v-if,v-else,v-model二、 绑定事件:@事件名 例如:@clic...

  • Vue组件通信的几种方式【转】

    Vue组件通信的几种方式【转】 组件通信主要有以下几种方式:props,$emit和$on,vuex,$attrs...

  • 创建单页应用

    Vue.js + Vue Router 创建单页应用, 使用vuex还管理组件间的通信。 State:存放组件之间...

  • vue事件总线EventBus

    vue组件有父子组件通信:props兄弟组件通信:可以使用vuex,还可以使用事件总线eventBus 使用方法:...

  • vue组件传值&vuex

    vue技术分享 目录 vue组件之间的通信 vue中数据监听watch的使用 vuex状态管理 vue-aweso...

  • Vuex 状态管理

    Vue组件间通信方式 Vuex核心概念和基本使用 购物车案例 模拟实现vuex 一、组件内的状态管理流程 状态管理...

  • Vuex简单上手

    Vuex Vuex是Vue.js应用的状态管理模式目前开发项目中,主要用于保存组件状态,保证兄弟组件间的通信。 首...

  • vue 新增属性 $attrs及$listeners (组件通信

    介绍:vue组件之间的通信方式有很多种,props/emit , event bus, vuex, provide...

  • 最新前端面试题总结

    vue相关 vue data为什么返回一个函数 vue父子兄弟组件通信 vuex有哪些属性 双向绑定实现原理 vu...

  • 2022年vue面试题总结

    vue 中 data 为什么是一个函数 vue 组件的通信 vuex 的原理 vue 生命周期 v-if 与 v-...

网友评论

      本文标题:VUE复习 组件通信、vuex

      本文链接:https://www.haomeiwen.com/subject/ymdnxqtx.html