zoukankan      html  css  js  c++  java
  • Vue.js 官方文档-学习小记(抄录-基础篇)

    介绍

    原文引自 Vue 官方教程 :https://cn.vuejs.org/v2/guide/

    Vue.js 是什么?

    Vue.js 是一套构建用户界面的渐进式框架。采用的是自底向上增量开发的设计(与其他重量级框架不同点)。Vue的核心库只关注图层,不仅易于上手,还便于与第三方库或既有项目整合。

    起步

    # helloword

    • 注意:不能将id = ‘app’写在body或者html中
    <script src = './vue.js'><script>
    <div id = 'app>
        <p> {{ message }} </p>
    </div>
    <script>
    var app = new Vue({
        el: '#app',
        message: 'helloword!!!'
    })
    <script>
    
    • 现在的数据和DOM已经绑定在一起了,所有的元素都是响应式
    • 文本插值:从控制台输入app.message = '新信息' ,可以修改DOM相应的更新
    • 元素属性:通过v-bind绑定 例如v-bind:title="哈哈哈"

    条件循环

    • v-if (文本到数据) 提供了一个强大的过渡效果系统,可以在Vue插入/删除/更新时自动应用过渡系统
    • v-for (结构到数据)

    处理用户输入

    • v-on 指令绑定一个事件监听器,通过它调用我们Vue实例中定义的方法
      • v-on:click = "Add"
    • v-model 实现表单输入和应用状态之间的双向绑定

    实例中的参数

    • el: 'id' //el就是 vue 程序的解析入口
    • data: { 数据 } //data就是ViewModel
    • methods: { 函数 } //函数中的this指向该应用中data的数据
    • computed: { 声明一个计算属性函数 }
      • 例子
      computed: {
      // a computed getter
      reversedMessage: function () {
        // `this` points to the vm instance
        return this.message.split('').reverse().join('')
      }
      }
      
    • filters: { 过滤器函数 }

    组件化应用构建

    在Vue里,一个组件本质上是一个拥有预定义选项的一个Vue实例

    Vue实例

    构造器

    • 每个 Vue.js应用都是通过构造函数Vue创建的一个Vue的根实例启动的
        var vm = new Vue({
        //选项
        })
    
    • 没有完全遵循MVVM模式
    • 可以扩展Vue构造器,从而用预定义选项创建可复用的组件构造器
    • 所有的 Vue.js 组件其实都是被扩展的 Vue 实例

    属性和方法

    • 每个Vue实例都会代理其data对象里所有的属性
    • 除了data属性外,Vue实例还会暴露了一些有用的实例属性和方法,都带前缀$,以便与代理的data属性区分
    • 不要在实例属性和回调函数中箭头函数,因为箭头函数绑定父上下文,this不会像预想的一样是Vue实例

    实例生命周期

    • Vue.js 是否有“控制器”的概念?答案是,没有。

    语法模板

    • 在底层的实现上,Vue将模板编译成虚拟DOM渲染函数。结合响应系统,在应用状态发生改变时,Vue能够智能地计算出重新渲染组件的最小代价并应用到DOM操作上。
    • 也可以不用模板,直接写渲染(render)函数,使用可选的JSX语法

    插值

    # 文本

    • 数据绑定最常见的形式就是使用“Mustache”(双大括号)的文本插值
    • 使用 v-once 指令,你也能执行一次性地插值,当数据改变时,插值处的内容不会更新

    # 纯HTML

    • 双大括号会将数据解析成纯文本,而非HTML。为了输出真正的HTML,需要使用v-html指令
    • 注意:你的站点上动态渲染的任意 HTML 可能会非常危险,因为它很容易导致 XSS 攻击。请只对可信内容使用 HTML 插值,绝不要对用户提供的内容插值。

    # 属性

    • Mustache不能在HTML属性中使用,应使用v-bind指令
    • 对id,布尔值的属性有效

    # 使用Javascript表达式

    • 例子
      • {{ number + 1 }}
      • {{ ok ? 'YES' : 'NO' }}
      • {{ message.split('').reverse().join('') }}
    • 表达式会在所属 Vue 实例的数据作用域下作为 JavaScript 被解析。有个限制就是,每个绑定都只能包含单个表达式。
    <!-- 这是语句,不是表达式 -->
    {{ var a = 1 }}
    <!-- 流控制也不会生效,请使用三元表达式 -->
    {{ if (ok) { return message } }}
    

    注意:模板表达式都被放在沙盒中,只能访问全局变量的一个白名单,如 Math 和 Date 。你不应该在模板表达式中试图访问用户定义的全局变量。

    指令

    • 是带有v-前缀的特殊属性

    # 参数

    • 一个指令能接受一个参数,在指令后面以冒号指明

    # 修饰符

    • 修饰符(Modifiers)是以半角句号 . 指明的特殊后缀,用于指出一个指令应该以特殊方式绑定。例如,.prevent 修饰符告诉 v-on 指令对于触发的事件调用 event.preventDefault()
    <form v-on:submit.prevent="onSubmit"></form>
    

    过滤器

    • Vue.js允许自定义过滤器,可被用作一些常见的文本格式化,用在两个地方:mustache插值和v-bind表达式
    <!-- in mustaches -->
    {{ message | capitalize }}
    <!-- in v-bind -->
    <div v-bind:id="rawId | formatId"></div>
    
    • 过滤器函数
      • 可以串联
      • 可以接受参数

    # 缩写

    • v-on
    <!-- 完整语法 -->
    <a v-on:click="doSomething"></a>
    <!-- 缩写 -->
    <a @click="doSomething"></a>
    
    • v-bind
    <!-- 完整语法 -->
    <a v-bind:href="url"></a>
    <!-- 缩写 -->
    <a :href="url"></a>
    

    计算属性

    计算属性

    # 基础例子

    # 计算缓存 vs methods

    • 计算属性:是基于它们依赖进行缓存的(因依赖改变而重新求值);Date.now()不是响应式依赖
    • methods:只要发生重新渲染, method调用总会调用执行该函数

    # Computed属性 vs Watched 属性

    • Watched 属性: 观察和响应Vue实例上的数据变动
    • 缺点:命令式和重复式。更多选择 computed 属性

    # 计算 setter

    • 计算属性默认只有getter,根据需求也可以提供一个setter

    观察 Watchers

    Class 与 Style 绑定

    绑定 HTML Class

    # 对象语法

    • v-bind:class={ 键:值 };可以与普通的class属性共存
    • 也可以绑定数据里的一个对象 v-bind:class=“classObject”
    • 也可以绑定一个计算属性

    # 数组语法

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

    # 用在组件上

    绑定内联样式

    # 对象语法

    • v-bind:style 的对象语法十分直观,看着非常像CSS,本质是一个 JavaScript 对象,属性名可以用驼峰式或者短横分隔命名
    • 直接绑定到一个样式对象

    # 数组语法

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

    # Vue会自动判断并添加前缀

    • 当 v-bind:style 使用需要特定前缀的 CSS 属性时,如 transform ,Vue.js 会自动侦测并添加相应的前缀。

    条件渲染

    v-if

    # 中 v-if 条件组

    • v-if 是一个指令,只能添加到一个元素上,如果像切换到多个元素,需要
  • 相关阅读:
    HTML5 History 模式 nginx配置
    nginx配置及性能调优
    windows启动jar包bat文件
    在线小工具
    BAT文件里Maven命令执行后退出的解决方案
    文字超出隐藏
    SOCKET.IO
    call与apply简单介绍
    html里面,没有内容,要高度占满页面
    css实现三角形标
  • 原文地址:https://www.cnblogs.com/ddd-bcz/p/6730178.html
Copyright © 2011-2022 走看看