• vue笔记


    规范

    命名

    • dom的属性名使用-来分割单词
    • 类名使用大驼峰标记
    • 其他变量使用小驼峰标记
      通过属性进行父子组件通信的时候,属性名和对应接收的变量名可以不一致,前者用方法1,后者用方法3:例如
    // 父组件使用listen-scroll向子组件传值
        <scroll :data="songs" @scroll="scroll"
                :listen-scroll="listenScroll" :probe-type="probeType" class="list" ref="list">
        </scroll> 
    // 子组件监听listenScroll变量
    export default {
        props: {
          listenScroll: {
            type: Boolean,
            default: false
          }
        },
    

    引用

    js中引用dom分两步:

    1. 在dom中加ref属性,添加引用名name1
    2. 在js中使用this.$refs.name1来引用
    3. 获取该dom可以使用this.$refs.name1.$el,设置style使用this.$refs.name1.$el.style.top=1(设置top值),获取style使用${this.$refs.name1.clientHeight}px
    4. 或者使用this.$refs.name1.style["top"] = 1

    语法

    1. 控制触发频率

    2. 在使用for循环的时候:v-for="item in items" ,加上每个项的id,是的没有li有一个唯一的标识,这样在顺序变化时候只会改变发生变化的项而不用全部都改

    <li v-for="item in items" :key="item.id"></li>
    

    Router 添加子路由:

    1. 实例化router的时候,如图,配置子路由singer-detail, 使用':'来标注id是个变量值
    2. 在父组件中使用router-view来承载子路由
    3. 在父组件中使用push方法来跳转到子组件
    4. 在子组件中使用transition标签包裹子组件的根节点可以加入跳转动画

    nextTick使用

    在a处改变了state值,b处监听这个值的变化触发函数func时,要将func在下一个事件循环中执行,如果立即执行会报错

     watch: {
        playing(newPlaying) {
          const audio = this.$refs.audio;
          this.$nextTick(()=>{
            newPlaying ? audio.play() : audio.pause();
          })
        }
      }
    };
    

    冒泡

    子元素的点击事件会冒泡到父元素上,如果父元素也有点击事件,则会掩盖子元素的点击事件,解决方法,子元素加.stop

    <i class="iconfont" :class="playIcon" @click.stop="togglePlaying"></i>  
    
  • 相关阅读:
    window servet 2012 r2 配置php服务器环境
    thinkphp5 input坑
    tp5命名空间补充
    cookie和session
    thinkphp5.0 模型的应用
    JavaScript--计时器
    Runtime Only VS Runtime+Compil
    Object.keys
    [LeetCode 17]电话号码的字母组合
    数组里的字符串转换成数字或者把数字转换成字符串
  • 原文地址:https://www.cnblogs.com/qian-shan/p/13276903.html
Copyright © 2020-2023  润新知