美文网首页
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

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