我爱编程

Vue.js 1.0 Official Guide Note

2017-03-07  本文已影响371人  云之外

Vue 实例

属性和方法

实例生命周期

数据绑定语法

插值

文本

原始的 HTML

HTML 特性

绑定表达式

JavaScript 表达式

过滤器

指令

修饰符

Vue.js 为两个最常用的指令 v-bindv-on 提供特别版的缩写:

<!-- v-bind -->
<a v-bind:href="url"></a>
<a :href="url"></a>
<!-- v-on -->
<a v-on:click="doSomething"></a>
<a @click="doSomething"></a>

计算属性

基础例子

var vm = new Vue({
  el: '#example',
  data: {
    a: 1
  },
  computed: {
    // 一个计算属性的 getter
    b: function () {
      // `this` 指向 vm 实例
      return this.a + 1
    }
  }
})
<div id="example">
  a={{ a }}, b={{ b }}
</div>

计算 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]
    }
  }
}
// ...

Class 与 Style 绑定

绑定 HTML Class

对象语法

数组语法

绑定内联样式

对象语法

数组语法

自动添加前缀

条件渲染

v-if

template v-if

v-show

组件警告

v-if vs. v-show

列表渲染

v-for

template v-for

数组变动检测

track-by

track-by $index

问题

对象 v-for

值域 v-for

显示过滤 / 排序的结果

方法与事件处理器

方法处理器

<div id="example">
    <button v-on:click="greet">Greet</button>
</div>

内联语句处理器

<div id="example-2">
    <button v-on:click="say('hi')">Say Hi</button>
    <button v-on:click="say('what')">Say What</button>
</div>
new Vue({
  el: '#example-2',
  methods: {
    say: function (msg) {
      alert(msg)
    }
  }
})

事件修饰符

```
<!-- 阻止单击事件冒泡 -->
<a v-on:click.stop="doThis"></a>
<!-- 提交事件不再重载页面 -->
<form v-on:submit.prevent="onSubmit"></form>
<!-- 修饰符可以串联 -->
<a v-on:click.stop.prevent="doThat">
<!-- 只有修饰符 -->
<form v-on:submit.prevent></form>
```
1.0.16 添加了两个额外的修饰符:

```
<!-- 添加事件侦听器时使用 capture 模式 -->
<div v-on:click.capture="doThis">...</div>
<!-- 只当事件在该元素本身(而不是子元素)触发时触发回调 -->
<div v-on:click.self="doThat">...</div>
```

按键修饰符

为什么在 HTML 中监听事件

表单控件绑定

基础用法

Checkbox

绑定 value

Checkbox

<input
  type="checkbox"
  v-model="toggle"
  v-bind:true-value="a"
  v-bind:false-value="b">
// 当选中时
vm.toggle === vm.a
// 当没有选中时
vm.toggle === vm.b

Radio

<input type="radio" v-model="pick" v-bind:value="a">
// 当选中时
vm.pick === vm.a

Select Options

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

参数特性

lazy

number

<input v-model="age" number>

debounce

过渡

CSS 过渡

示例

<div v-if="show" transition="expand">hello</div>
/* 必需 */
.expand-transition {
  transition: all .3s ease;
  height: 30px;
  padding: 10px;
  background-color: #eee;
  overflow: hidden;
}
/* .expand-enter 定义进入的开始状态 */
/* .expand-leave 定义离开的结束状态 */
.expand-enter, .expand-leave {
  height: 0;
  padding: 0 10px;
  opacity: 0;
}

过渡的 CSS 类名

自定义过渡类名

显式声明 CSS 过渡类型

CSS 动画

JavaScript 过渡

渐进过渡

组件

使用组件

注册

局部注册

注册语法糖

组件选项问题

模板解析

Props

使用 props 传递数据

camelCase vs. kebab-case

动态 Props

字面量语法 vs. 动态语法

Prop 绑定类型

Prop 验证

父子组件通信

父链

自定义事件

使用 v-on 绑定自定义事件

子组件索引

使用 Slot 分发内容

编译作用域

单个 Slot

具名 Slot

<p slot="one">One</p>
<p slot="two">Two</p>
<p>Default A</p>
</multi-insertion>
```
渲染结果:

```
<div>

<p slot="one">One</p>
<p>Default A</p>
<p slot="two">Two</p>
</div>
```

动态组件

keep-alive

activate 钩子

transition-mode

杂项

异步组件

递归组件

片段实例

N/A

内联模板

深入响应式原理

[可以查看我的 Vue 2 的 Guide Note]

自定义指令

基础

钩子函数

指令实例属性

字面修饰符

元素指令

高级选项

[正在整理]

自定义过滤器

基础

双向过滤器

动态参数

混合

基础

选项合并

全局混合

自定义选项合并策略

插件

开发插件

[正在整理]

使用插件

构建大型应用

路由

与服务器通信

状态管理

上一篇 下一篇

猜你喜欢

热点阅读