zoukankan      html  css  js  c++  java
  • vue基础知识总结

    vue不支持安卓6.0以下版本,切记!!!

    1.创建vue实例

     var vm = new Vue({ 
        el: '#app',  //所指向的dom的id
        data:{ },    //与dom元素绑定的数据
        methods:{ },  //方法
    })

    在vue实例中还有相应的钩子函数,下图详解:

    created 钩子可以用来在一个实例被创建之后执行代码

    mounted 在整个实例生命内只执行一次

    也有一些其它的钩子,在实例生命周期的不同阶段被调用,如 updated 和 destroyed。生命周期钩子的 this 上下文指向调用它的 Vue 实例。

    2.输出HTML

    双大括号会将数据解释为普通文本,而非 HTML 代码。为了输出真正的 HTML,你需要使用 v-html 指令:

    <p> 测试v-html <span v-html="aaa"></span></p>

    这个 span 的内容将会被替换成为属性值 rawHtml,直接作为 HTML——会忽略解析属性值中的数据绑定。

    注意:你不能使用 v-html 来复合局部模板,因为 Vue 不是基于字符串的模板引擎。反之,对于用户界面 (UI),组件更适合作为可重用和可组合的基本单位。

    3.v-bind 绑定属性

    <a v-bind:href="url">...</a>

    4.class与style绑定

    a。可以在对象中传入更多属性来动态切换多个 class

    <div class="static"
         v-bind:class="{ active: isActive, 'text-danger': hasError }">
    </div>
    
    data: {
      isActive: true,
      hasError: false
    }

    结果渲染为:

    <div class="static active"></div>

    b。class--计算属性

    <div v-bind:class="classObject"></div>
    
    data: {
      isActive: true,
      error: null
    },
    computed: {
      classObject: function () {
        return {
          active: this.isActive && !this.error,
          'text-danger': this.error && this.error.type === 'fatal'
        }
      }
    }

    c。class--数组语法

    <div v-bind:class="[activeClass, errorClass]"></div>
    
    data: {
      activeClass: 'active',
      errorClass: 'text-danger'
    }

    渲染为:

    <div class="active text-danger"></div>

    不过,当有多个条件 class 时这样写有些繁琐。所以在数组语法中也可以使用对象语法:

    <div v-bind:class="[{ active: isActive }, errorClass]"></div>

    d。绑定style--对象语法

    <div v-bind:style="{ color: activeColor, fontSize: fontSize + 'px' }"></div>
    
    data: {
      activeColor: 'red',
      fontSize: 30
    }

    直接绑定到一个样式对象通常更好,这会让模板更清晰:

    <div v-bind:style="styleObject"></div>
    
    data: {
      styleObject: {
        color: 'red',
        fontSize: '13px'
      }
    }

     同样的,对象语法常常结合返回对象的计算属性使用

    e。style--数组语法

    <div v-bind:style="[baseStyles, overridingStyles]"></div>

    5.v-if

    使用v-if来控制木块的显示隐藏

    v-if,v-else,v-else-if

    <div v-if="type === 'A'">
      A
    </div>
    <div v-else-if="type === 'B'">
      B
    </div>
    <div v-else-if="type === 'C'">
      C
    </div>
    <div v-else>
      Not A/B/C
    </div>

    v-if有更高的切换开销,v-show有更高的初始渲染开销

    6.v-for

    <ul id="example-2">
      <li v-for="(item, index) in items">
        {{ parentMessage }} - {{ index }} - {{ item.message }}
      </li>
    </ul>

     为了给 Vue 一个提示,以便它能跟踪每个节点的身份,从而重用和重新排序现有元素,你需要为每项提供一个唯一 key 属性

    <div v-for="item in items" :key="item.id">
      <!-- 内容 -->
    </div>

    7.v-model

    <input v-model="message" placeholder="edit me">
    <p> {{ message }}</p>

    a。复选框

    <div id='example-3'>
      <input type="checkbox" id="jack" value="Jack" v-model="checkedNames">
      <label for="jack">Jack</label>
      <input type="checkbox" id="john" value="John" v-model="checkedNames">
      <label for="john">John</label>
      <input type="checkbox" id="mike" value="Mike" v-model="checkedNames">
      <label for="mike">Mike</label>
      <br>
      <span>Checked names: {{ checkedNames }}</span>
    </div>
    new Vue({
      el: '#example-3',
      data: {
        checkedNames: []
      }
    })

    b。单选按钮

    <div id="example-4">
      <input type="radio" id="one" value="One" v-model="picked">
      <label for="one">One</label>
      <br>
      <input type="radio" id="two" value="Two" v-model="picked">
      <label for="two">Two</label>
      <br>
      <span>Picked: {{ picked }}</span>
    </div>
    new Vue({
      el: '#example-4',
      data: {
        picked: ''
      }
    })

    c。选择框

    <div id="example-5">
      <select v-model="selected">
        <option disabled value="">请选择</option>
        <option>A</option>
        <option>B</option>
        <option>C</option>
      </select>
      <span>Selected: {{ selected }}</span>
    </div>
    new Vue({
      el: 'example-5',
    data: { selected:
    '' }
    })

    8.值绑定

    a。对于单选按钮,复选框及选择框的选项,v-model 绑定的值通常是静态字符串 (对于复选框也可以是布尔值):

    <!-- 当选中时,`picked` 为字符串 "a" -->
    <input type="radio" v-model="picked" value="a">
    
    <!-- `toggle` 为 true 或 false -->
    <input type="checkbox" v-model="toggle">
    
    <!-- 当选中第一个选项时,`selected` 为字符串 "abc" -->
    <select v-model="selected">
      <option value="abc">ABC</option>
    </select>

    b。复选框

    <input
      type="checkbox"
      v-model="toggle"
      true-value="yes"
      false-value="no"
    >
    // 当选中时
    vm.toggle === 'yes'
    // 当没有选中时
    vm.toggle === 'no'

    c。选择框的选项

    <select v-model="selected">
        <!-- 内联对象字面量 -->
      <option v-bind:value="{ number: 123 }">123</option>
    </select>
    // 当选中时
    typeof vm.selected // => 'object'
    vm.selected.number // => 123

    如果要自动过滤用户输入的首尾空白字符,可以给 v-model 添加 trim 修饰符:

    <input v-model.trim="msg">
  • 相关阅读:
    Intersection of Two Linked Lists
    Tools:实现vmware虚拟机开机自启动
    Tools:实现ping操作带时间戳【windows+linux】
    Django:学习笔记
    Python:笔记2
    Python:笔记1_字符串处理【转载】
    Pycharm:使用笔记
    python:win下将py文件打包成exe
    python:选房抽签小工具
    RF:操作笔记
  • 原文地址:https://www.cnblogs.com/wangyuyuan/p/8480293.html
Copyright © 2011-2022 走看看