处理用户输入

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. hdu 1142 A Walk Through the Forest (最短路径)

    A Walk Through the Forest Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Jav ...

  2. html的body内标签之多行文本及下拉框

    一,<textarea>默认值<textarea>  -name属性,textarea的默认值放到中间 <select> name,内部option value,提 ...

  3. springboot2.0 如何异步操作,@Async失效,无法进入异步

    springboot异步操作可以使用@EnableAsync和@Async两个注解,本质就是多线程和动态代理. 一.配置一个线程池 @Configuration @EnableAsync//开启异步 ...

  4. 2015 EC L - Multiplication Table

    /************************************************************************* > File Name: L.cpp > ...

  5. [BZOJ5339] [TJOI2018]教科书般的亵渎

    题目链接 BZOJ题面. 洛谷题面. Solution 随便推一推,可以发现瓶颈在求\(\sum_{i=1}^n i^k\),关于这个可以看看拉格朗日插值法. 复杂度\(O(Tm^2)\). #inc ...

  6. HDOJ(HDU).3466 Dividing coins ( DP 01背包 无后效性的理解)

    HDOJ(HDU).3466 Dividing coins ( DP 01背包 无后效性的理解) 题意分析 要先排序,在做01背包,否则不满足无后效性,为什么呢? 等我理解了再补上. 代码总览 #in ...

  7. 【并查集】【P1525】关押罪犯

    传送门 Description Input Output Sample Input Sample Output Hint Solution 非常显然的并查集题目,在本题中,对于每个罪犯i,维护两个信息 ...

  8. 我们自己写的solr查询的代码作为search项目中的dao

    我们自己写的solr查询的代码作为search项目中的dao,但是启动时会报错: 其实就是说 searchServiceImpl 中我们 Autowired 的 SearchDao 类 spring ...

  9. 使用localhost调试本地代码,setcookie无效

    今天在本地调试代码的时候,再域名中使用localhost,结果一直调试不成功,最后发现在登录时,setcookie()没有设置进去 于是发现了,在使用localhost调试时,保存cookie是无效的 ...

  10. 图论:LCA-树上倍增

    BZOJ1602 求最近公共祖先有三种常用的方法,在线的有两种,分别是树上倍增算法和转化为RMQ问题 离线的有一种,使用Tarjan算法 这里,我们介绍复杂度优异并且在线的倍增算法,至于后续的两种方法 ...