• Vue2.0电商总结


    一、vue组件

      在很多时候我们的组件并不需要全部注册在全局里面,我专门只需要注册在需要用到的里面即可(就近原则)

       

     
    
    import Vue from 'vue'
    
    var xixine = {
    
    template:'<h1>Im your headers</h1>'
    
    }
    
    var lala ={
    
    template:'<div><h1>xixida</h1><your-header></your-header></div>',
    
    components:{
    
    'your-header':xixine
    
    }
    
    }
    
    new Vue({
    
    el:'#app',
    
    data:{
    
    xixi:'I am a student'
    
    },
    
    components:{
    
    'my-header':lala
    
    }
    
    })
    
     
    

      

     

    二、data要避免引用赋值(引用赋值后,组件中的一个时间改变了其中的值,另一个组件如果也用了这个值会受牵连)避免data引用赋值的操作很简单就是这样

     

    var demo= {
    
    template:'<h1>Im your headers{{a}}</h1>',
    
    data(){
    
    return {        //避免引用赋值  
    
    a:'我是a',
    
    b:'xixi'
    
    }
    
    }
    
    }
    

      

    三、vue 2.0 中从外部引入的组件文件 需要 用renderimport Vue from 'vue'

    import App from './App'

    var vm = new Vue( { el:'#app', render:h =>h(App) //vue 2.0 从外部引入的组件需要 用render函数渲染
    四、v-for 循环中,数组和对象时几乎一样都,都是 <template>
    
     <div id="app">
    
       <ul>
    
          <li v-for="(item,key) in list">{{item}}+{{index}}</li>
    
       </ul>
    
     </div>
    
    </template>
    
    <script>
    
       export default{
    
          data(){
    
           return {
    
           hello:'hello world',
    
           list:{
    
           name:'apple',
    
           price:55,
    
           color:"red",
    
           weight:75
    
           }
    
           }
    
          }
    
       }
    
      常用的类似于 pop(),push() ,shift,unshift,splicereverse等函数可以出发页面上染上的更新,但是filterconcatslice这样的就不行,还有直接修改某一项也不会出发更新如下图,(可以使用Vue提供的set方法)<template>
    
     <div id="app">
    
       <ul>
    
          <li v-for="(item,key) in list">{{item.name}}</li>
    
          <button v-on:click ="addItem">addItem</button>
    
       </ul>
    
     </div>
    
    </template>
    
     
    
    <script>
    
        import Vue from 'vue'
    
       export default{
    
          data(){
    
           return {
    
           hello:'hello world',
    
           list:
    
           [{
    
           name:'apple',
    
           price:55
    
           },{
    
           name:'banana',
    
           price:55
    
           },{
    
           name:'orange',
    
           price:55
    
           },{
    
           name:'apple',
    
           price:55
    
           }
    
           ]
    
          }
    
           },
    
          methods:{
    
           addItem(){
    
           this.list[1] ={
    
            name:'lala',price:65
    
           } //直接这样改是不会触发上面的更新的,
    
           Vue.set(this.list,1,{name:'lala',price:65})
           }
          }
       }
    
    </script>
    

      


    七、父子间传值的方式
    六、其实我们一个vue项目中只有一个 vue实例对象,也就是main.js里面的入口文件里面的,其他的所有传递 就相当于一份配置文件

     

     

    八、slot 可以实现插槽功能

    父模板:

    <my-com>
    
    <p>this is slot<p>
    
    </my-com>
    
     
    

      

    子模板:

       <div>
    
               <slot name=”header”>no slot<slot>
    
    </div>

    九、is 属性可以实现动态组件当父模板没有插入插槽的时候,会出现no slot

    十、<keep-alive></keep-alive>加在 动态组件两边可以实现缓存,什么意思呢,也就是说有两个组件comAcomBcomA切换到comB,然后再由comB切换到comA时就会显示上一次comA的状态,常见的有在<router-view>用,其实<router-view>也就是类似于一个动态组件

    <keep-alive>
    
       <p :is=”curView”></p>
    
    </keep-alive>



      十一、css运用

    如果我们的模板是这样的
    
    <template>
       <transition name="fade">
            <p v-show="show">i am show</p>
        </transition>
    </template>
    

      写样式的时候要注意,一般 过度的时间啊啥的 下载     .name-enter-active.leave-enter-active里面,因为这两个都是一个过程,而开始前的动画卸载 .name-enter里面,结束的动画下载 .name-leava-active,这个应该不难李家,这两个代表的是开始和结尾的两种状态

    样式解释这样写的
    
    <style>
    .fade-enter-active,.fade-leave-active{
     transition: all .5s;
    }
    .fade-enter,.fade-leave-active{
    opacity: 0;
    }
    .fade-enter{
    transform: translateY(-500px);
    }
    
    .fade-leave-active{
    
     transform: translateY(500PX);
    }
    
    </style>

    <transition name='fade' mode="out-in">在切换的过程中会出现一点晃动,那还是因为transition默认先进后出,还没出去的自然会影响到正在进来的,所以我们可以用 mode 属性 给他设置为 先出后进

    <transition name='fade' mode="out-in">

      <div :is="mycom"></div>

        </transition>

    在vue中标签名字如果相同的话,不会执行动画的,

     <transition name='fade' mode="out-in"> 	 
    	 <p v-show="lala">12312</p>
    	 <p v-else>else else</p>
     </transition>
    

      

  • 相关阅读:
    Linux统计文件夹下所有文件的数量
    Linux查看文件最后几行的命令
    linux export将PATH环境变量误删了的解决办法
    laravel提示Mcrypt PHP extension required
    php(cli模式)执行文件传递参数
    shell判断文件是否存在,不存在则创建
    php获取Linux网卡信息
    使用iptraf,ifstat查看网络流量
    作用域
    头文件,库文件,重复包含
  • 原文地址:https://www.cnblogs.com/zhangxiaofei/p/7251839.html
Copyright © 2020-2023  润新知