zoukankan      html  css  js  c++  java
  • 2. Vue基础语法

    模板语法:

    • Mustache语法: {{}}
    • Html赋值: v-html=""
    • 绑定属性: v-bind:id=""
    • 使用表达式: {{ok?'Yes':'No'}}
    • 文本赋值: v-text=""
    • 指令: v-if=""
    • 过滤器: {{ msg | capitalize }} 和 v-bind:id="rawId | formatId"

    Class和Style绑定

    • 对象语法:v-bind:class=“{active:isActive}”
    • 数组语法::class="[class1,class2]"
    • style绑定-对象语法:v-bind:style="{color:activeColor,fontSize:fontSize+'px'}"

    条件渲染

    • v-if / v-else / v-else-if DOM是否加载
    • v-show 通过display来设置显示隐藏
    • v-cloak 页面刷新太快,导致有些元素没有加载出来,可以同步去隐藏html代码

    vue事件处理器

    • v-on:click="" / @click=""
    • 事件修饰符
      @click.stop 阻止冒泡
      @click.prevent 阻止默认事件
      @click.self 对对象本身绑定函数,里面的子元素不起作用
      @click.once 只给事件绑定一次
      @keyup.enter

    Vue组件

    • 全局组件和局部组件
    • 父子组件通讯-数据传递
      父->子:通过Props传递
      子->父:不允许,但vue通过子组件触发Emit来提交给子组件进行触发
    • Slot
    import Counter from './conuter' //导入组件
    
    components:{//注册局部组件
        Counter //加载组件
      }
    
    <Counter v-bind:num="num"></Counter><!-- 调用组件 v-bind 绑定动态变量 -->

    父组件传递到子组件,使用props

    //hello.vue
    <template>
        // v-bind:子组件的值="父组件的属性"
        <Counter v-bind:num="num"></Counter><!-- 调用组件 v-bind 绑定动态变量 -->
        <p>父组件:{{num}}</p>
    </template>
    <script>
    import Counter from './conuter' //导入组件
    export default {
      name: 'HelloWorld',
      data () {
        return {
          num:10,
        }
      },
      components:{//注册局部组件
        Counter //加载组件
      }
    }
    </script>
    //子组件.vue
    <template>
        <button @click="decrement">-</button>
        <p>子组件:{{num}}</p>
    </template>
    <script>
        export default{
            props:['num'],//父组件的数据需要通过 prop 才能下发到子组件中
            methods:{
                decrement(){
                  this.num--;
                },
            }
        }
    </script>

    子组传递到父组件,使用$emit()触发

    //hello.vue
    <template>
        <Counter v-bind:num="num" v-on:dec="decrement"></Counter><!-- dec 自定义事件-->
        <p>父组件:{{num}}</p>
    </template>
    <script>
    import Counter from './conuter'
    export default {
      name: 'HelloWorld',
      data () {
        return {
          num:10,
        }
      },
      components:{//注册局部组件
        Counter
      },
      methods:{
        decrement(){
          this.num--;
        },
      }
    }
    </script>
    //子组件.vue
    <template>
        <button @click="decrement">-</button>
        <p>子组件:{{num}}</p>
    </template>
    <script>
        export default{
            props:['num'],//父组件的数据需要通过 prop 才能下发到子组件中
            methods:{
                decrement(){
                  this.$emit('dec');//子组件往父组件里传数据通过`emit()`触发,通过emit来触发父组件的方法,相当于jquery里的trigger, 复杂项目用Vuex
                },
            }
        }
    </script>

    <wiz_tmp_tag id="wiz-table-range-border" contenteditable="false" style="display: none;">

  • 相关阅读:
    String、StringBuffer与StringBuilder的区别
    案例2:用一条SQL查询出数学语文成绩都大于80分的学生姓名?
    案例1:写一个压缩字符串的方法,例如aaaabbcxxx,则输出a4b2c1x3。
    jsp的九大内置对象及作用
    SQL语句总结2018-11-7
    kafka-spark streaming (一)
    python while嵌套循环
    docker-compose.yml样例(mysql主从+mycat读写分离)
    docker-compose管理daocker
    docker搭建私有registry
  • 原文地址:https://www.cnblogs.com/conglvse/p/9521825.html
Copyright © 2011-2022 走看看