处理用户输入

v-on指令添加一个事件监听器

div id="app-5">
<p>{{ message }}</p>
<button v-on:click="reverseMessage">逆转消息</button>
</div>
var app5 = new Vue({
el: '#app-5',
data: {
message: 'Hello Vue.js!'
},
methods: {
reverseMessage: function () {
this.message = this.message.split('').reverse().join('')
}
}
})

组件化应用构建

Vue.component('todo-item',{
//todo-item组件现在接受一个
//"prop",类似于一个自定义特性。
props:['todo'],
template:'<li>{{todo.text}}</li>'
})

组件的应用模板

<div id="app">
<app-nav></app-nav>
<app-view>
<app-sidebar></app-sidebar>
<app-content></app-content>
</app-view>
</div>

一个todo应用的组件树

根实例
└─ TodoList
├─ TodoItem
│ ├─ DeleteTodoButton
│ └─ EditTodoButton
└─ TodoListFooter
├─ ClearTodosButton
└─ TodoListStatistics

数据与方法

Object.freeze()

  • 阻止修改现有的属性,也以意味着响应系统无法再追踪变化

      var obj = {
    foo: 'bar'
    } Object.freeze(obj) new Vue({
    el: '#app',
    data: obj
    })
    <div id="app">
    <p>{{ foo }}</p>
    <!-- 这里的 `foo` 不会更新! -->
    <button @click="foo = 'baz'">Change it</button>
    </div>

模板语法

插值

文本

  • 数据绑定最常见的形式就是使用"Mustache"语法(双大括号)的文本插值

Message:{{msg}}

  • Mustache标签将会被替代为对应数据对象上msg属性的值。无论何时,绑定的数据对象上 msg 属性发生了改变,插值处的内容都会更新。

原始HTML

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

    html

      <p>Using mustaches: {{ rawHtml }}</p>
    <p>Using v-html directive: <span v-html="rawHtml"></span></p>

指令

v-bind修饰符

  • .prop被用于绑定DOM属性(property)
  • .camel (2.1.0)将kebab-case特性名转换为canmeCase(从2.1.0开始支持)
  • .sync(2.3.0)语法糖,会扩展成一个更新父组件绑定值的v-on侦听器

参数

  • 一些指令能够接收一个“参数”,在指令名称以后以冒号表示

  • v-bind指令可以用来响应式地更新HTML属性

      <a v-bind:href="url">...</a>
    //在这里 href 是参数,告知 v-bind 指令将该元素的 href 属性与表达式 url 的值绑定。

v-bind缩写

    <!-- 完整语法 -->
<a v-bind:href="url">...</a> <!-- 缩写 -->
<a :href="url">...</a>
  • v-on指令,它用于监听dom事件

      <a v-on:click="doSomething">...</a>
    //在这里参数是监听的事件名

v-on缩写

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

计算属性和侦听器

计算属性

计算属性reversedMessage

  • 我们提供的函数将用作属性vm.reversedMessage的getter函数

      console.log(vm.reversedMessage) // => 'olleH'
    vm.message = 'Goodbye'
    console.log(vm.reversedMessage) // => 'eybdooG'
  • vm.reversedMessage的值始终取决于vm.message的值

计算属性的setter

  • 计算属性默认只有getter,不过在需要时你也可以提供一个setter:

      computed: {
    fullName: {
    // getter
    get: function () {
    return this.firstName + ' ' + this.lastName
    },
    // setter
    set: function (newValue) {
    var names = newValue.split(' ')
    this.firstName = names[0]
    this.lastName = names[names.length - 1]
    }
    }
    }

侦听属性watch

class与style绑定

绑定HTML Class

对象语法

  • 三元表达式

      <div v-bind:class="[isActive ? activeClass : '',errorClass]"></div>
  • 这样写将始终添加 errorClass,但是只有在 isActive 是 truthy[1] 时才添加 activeClass。

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

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

vue知识点(1)的更多相关文章

  1. 【vue知识点】1)vue生命周期

    [vue知识点]2)vue登录认证

  2. vue知识点汇总

    一.学习vue必须了解的几个知识点  1.node.js介绍 node是一个让JavaScript运行在服务端的开发平台,使用JavaScript也可以开发后台服务.说明白些它仅仅是一个平台,我们使用 ...

  3. vue知识点13

    知识点归纳整理如下: 组件 component     1.页面中的一部分,可以复用, 本质上是一个拥有预定义选项的一个 Vue 实例         2.使用         1)定义        ...

  4. vue知识点12

    知识点归纳整理如下: 1. 数组用下标改变,或者对象增加属性,这样的改变数据   是不能触发视图更新的,要用 Vue.set(对象,属性,值) 或this.$set(对象,属性,值) 2. this. ...

  5. Vue知识点

    1. Vue生命周期图示: 2.插值: 文本:{{ message }}: 纯html:v-html="xxx"; 属性:v-bind:id="xxx"; 使用 ...

  6. Vue面试中,经常会被问到的面试题/Vue知识点整理

    一.对于MVVM的理解? MVVM 是 Model-View-ViewModel 的缩写.Model代表数据模型,也可以在Model中定义数据修改和操作的业务逻辑.View 代表UI 组件,它负责将数 ...

  7. Vue知识点(面试常见点)

    v-bind和v-model的区别 1.v-bind用来绑定数据和属性以及表达式,缩写为':' 2.v-model使用在表单中,实现双向数据绑定的,在表单元素外使用不起作用 什么是 mvvm? MVV ...

  8. 【前端vue开发】vue知识点超链接学习笔记

    1.如何去除vue项目中的 # --- History模式: https://www.cnblogs.com/zhuzhenwei918/p/6892066.html 2.三分钟教你写个Vue组件: ...

  9. Vue知识点超快速学习

    基础知识: vue的生命周期: beforeCreate/created.beforeMount/mounted.beforeUpdate/updated.beforeDestory/destorye ...

  10. vue 知识点

    Vue 中的 slot: 概念:槽/slot是组件在模板中为调用者预留的位置,使用<slot>元素声明一个 槽.在最终的视图中,调用者模板中被调用组件的内容,将填充<slot> ...

随机推荐

  1. POJ1006:Biorhythms——题解

    http://poj.org/problem?id=1006 题目大意: 人生来就有三个生理周期,分别为体力.感情和智力周期,它们的周期长度为23天.28天和33天.每一个周期中有一天是高峰.在高峰这 ...

  2. BZOJ3930:[CQOI2015]选数——题解

    http://www.lydsy.com/JudgeOnline/problem.php?id=3930 https://www.luogu.org/problemnew/show/P3172#sub ...

  3. 洛谷 P2906 [USACO08OPEN]牛的街区Cow Neighborhoods | Set+并查集

    题目: https://www.luogu.org/problemnew/show/P2906 题解: 垃圾水题 #include<cstdio> #include<algorith ...

  4. 蓝桥杯 最短路 spfa

    问题描述 给定一个n个顶点,m条边的有向图(其中某些边权可能为负,但保证没有负环).请你计算从1号点到其他点的最短路(顶点从1到n编号). 输入格式 第一行两个整数n, m. 接下来的m行,每行有三个 ...

  5. Hdu3579 Hello Kiki

    Hello Kiki Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total ...

  6. linux shell脚本攻略笔记

    前一阵子系统学习了下<linux shell脚本攻略>这本书.在此记录下自己的学习笔记 1. 输出颜色字符  echo -e "\e[1:41m" 1表示背景色   2 ...

  7. POJ 1698 最大流

    Alice's Chance Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 7327   Accepted: 2992 De ...

  8. NYOJ 745 dp

    蚂蚁的难题(二) 时间限制:1000 ms  |  内存限制:65535 KB 难度:3   描述 下雨了,下雨了,蚂蚁搬家了. 已知有n种食材需要搬走,这些食材从1到n依次排成了一个圈.小蚂蚁对每种 ...

  9. maven报错 Failure to transfer org.apache.maven.plugins:maven-compiler-plugin:pom:3.5.0 from

    maven报错误,类似于: Failure to transfer org.apache.maven.plugins:maven-compiler-plugin:pom:3.5.0 from http ...

  10. Android SearchView设置与用法的那点事儿

    // 设置该SearchView默认是否自动缩小为图标 mSearchView.setIconifiedByDefault(false); // 为该SearchView组件设置事件监听器 mSear ...