JavaScript的MVVM库Vue.js入门学习笔记

前端之家收集整理的这篇文章主要介绍了JavaScript的MVVM库Vue.js入门学习笔记前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

一、v-bind 缩写

<a :href="url">

<button v-bind:disabled="someDynamicCondition">Button

<button :disabled="someDynamicCondition">Button

二、v-on 缩写

三、过滤器

四、条件渲染

No

<div v-if="Math.random() > 0.5">
Sorry

Not sorry
template-v-if v-show

五、列表渲染 for

var example1 = new Vue({ el: '#example-1',data: { items: [ { message: 'Foo' },{ message: 'Bar' } ] } });

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

var example2 = new Vue({ el: '#example-2',data: { parentMessage: 'Parent',items: [ { message: 'Foo' },{ message: 'Bar' } ] } });

数组变动检测 Vue.js 包装了被观察数组的变异方法,故它们能触发视图更新。被包装的方法有:push(),pop(),shift(),unshift(),splice(),sort(),reverse()

对象 v-for

new Vue({ el: '#repeat-object',data: { object: { FirstName: 'John',LastName: 'Doe',Age: 30 } } });

值域 v-for

六、方法与事件处理器

方法处理器

var vm = new Vue({
el: '#example',data: {
name: 'Vue.js'
},// 在 methods 对象中定义方法
methods: {
greet: function (event) {
// 方法this 指向 vm
alert('Hello ' + this.name + '!')
// event 是原生 DOM 事件
alert(event.target.tagName)
}
}
})

// 也可以在 JavaScript 代码调用方法
vm.greet(); // -> 'Hello Vue.js!'

内联语句处理器

new Vue({ el: '#example-2',methods: { say: function (msg) { alert(msg) } } });

有时也需要在内联语句处理器中访问原生 DOM 事件。可以用特殊变量 $event 把它传入方法

methods: { say: function (msg,event) { // 现在我们可以访问原生事件对象 event.preventDefault() } };

## 事件修饰符

## 按键修饰符

全部的按键别名:enter,tab,delete,esc,space,up,down,left,right

## 其他实例

3) { this.stats.$remove(stat); // 注意这里的$remove } else { alert('Can\'t delete more!') } } } });

七、过渡

CSS 过渡

然后为 .expand-transition,.expand-enter 和 .expand-leave 添加 CSS 规则:

/ 必需 /
.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;
}

你可以在同一元素上通过动态绑定实现不同的过渡:

new Vue({ el: '...',data: { show: false,transitionName: 'fade' } }

另外,可以提供 JavaScript 钩子:

beforeEnter: function (el) {
el.textContent = 'beforeEnter'
},enter: function (el) {
el.textContent = 'enter'
},afterEnter: function (el) {
el.textContent = 'afterEnter'
},enterCancelled: function (el) {
// handle cancellation
},beforeLeave: function (el) {
el.textContent = 'beforeLeave'
},leave: function (el) {
el.textContent = 'leave'
},afterLeave: function (el) {
el.textContent = 'afterLeave'
},leaveCancelled: function (el) {
// handle cancellation
}
});

八、组件

1.注册

A custom component!
' });

// 注册
Vue.component('my-component',MyComponent);

// 创建根实例
new Vue({
el: '#example'
});
<div id="example">

或者直接写成:

Vue.component('my-component',{
template: '

A custom component!
'
});

// 创建根实例
new Vue({
el: '#example'
});
<div id="example">

2.使用prop 传递数据

实例一:

{{ msg }}' });

实例二:

{{ myMessage }}' });

3.动态props

使用 v-bind 的缩写语法通常更简单:

4.Prop 绑定类型

prop 默认是单向绑定:当父组件的属性变化时,将传导给子组件,但是反过来不会。这是为了防止子组件无意修改了父组件的状态——这会让应用的数据流难以理解。不过,也可以使用 .sync 或 .once 绑定修饰符显式地强制双向或单次绑定:

比较语法:

<child :msg.sync="parentMsg">

<child :msg.once="parentMsg">
其他实例:

<modal :show.sync="showModal">
<h3 slot="header">custom header

5.Prop 验证

组件可以为 props 指定验证要求。当组件给其他人使用时这很有用,因为这些验证要求构成了组件的 API,确保其他人正确地使用组件。此时 props 的值是一个对象,包含验证要求:

10 } },// 转换函数(1.0.12 新增) // 在设置值之前转换值 propG: { coerce: function (val) { return val + '' // 将值转换为字符串 } },propH: { coerce: function (val) { return JSON.parse(val) // 将 JSON 字符串转换为对象 } } } });

其他实例:

required: true,twoWay: true } } });

6.注册

A custom component!
' });

// 注册
Vue.component('my-component',MyComponent);

// 创建根实例
new Vue({
el: '#example'
});
<div id="example">

或者直接写成:

A custom component!
' });

// 创建根实例
new Vue({
el: '#example'
});
<div id="example">

7.使用prop 传递数据

实例一:

{{ myMessage }}' });

8.动态props

使用 v-bind 的缩写语法通常更简单:

9.Prop 绑定类型

prop 默认是单向绑定:当父组件的属性变化时,将传导给子组件,但是反过来不会。这是为了防止子组件无意修改了父组件的状态——这会让应用的数据流难以理解。不过,也可以使用 .sync 或 .once 绑定修饰符显式地强制双向或单次绑定:

比较语法:

<child :msg.sync="parentMsg">

<child :msg.once="parentMsg">

其他实例:

10.Prop 验证

组件可以为 props 指定验证要求。当组件给其他人使用时这很有用,因为这些验证要求构成了组件的 API,确保其他人正确地使用组件。此时 props 的值是一个对象,包含验证要求:

11.使用slot分发内容

元素作为组件模板之中的内容分发插槽。这个元素自身将被替换。 有 name 特性的 slot 称为命名 slot。 有 slot 特性的内容将分发到名字相匹配的命名 slot。

例如,假定我们有一个 multi-insertion 组件,它的模板为:

父组件模板:

Default A

渲染结果为:

Default A

原文链接:https://www.f2er.com/vue/49032.html
JavaScriptjsMVVM

猜你在找的Vue相关文章