Vue2.0学習ノート
25457 ワード
Vue2
Vueオブジェクトインスタンス
≪インスタンス|Instance|emdw≫
var vm = new Vue()
/* eslint-disable no-new */
new Vue()
var vm = new Vue({
el: '#app', //
template: '' , //
components: { App },
data: {
a: 1
}
})
インスタンスのプロパティとメソッドへのアクセス
//vm.a data
//vm.$data.a $ vm
var vm = new Vue({
el: '#app',
template: '' ,
components: { App },
data: { a: 1}
})
console.log(vm.$data.a) // 1
console.log(vm.a) // 1
Vueの基本概念
グローバルapi
Vue.use
// Vue.js :vue-resource
import vueResource from 'vue-resource'
Vue.use(vueResource);
Vue.component
//
Vue.component( 'jianjun', {
template: ' {
{ msg }}
',
data(){
return {
msg: ' '
}
}
})
// ,
Vue.component('my-component', Vue.extend({ /* ... */ }))
// , ( Vue.extend)
Vue.component('my-component', { /* ... */ })
// ( )
var MyComponent = Vue.component('my-component')
Vue.extend
// Vue , “ ”。
//data , - Vue.extend()
オプション(Vueインスタンスオブジェクトを作成するために使用できるオプション)
すべてのライフサイクルフックはthisコンテキストをインスタンスに自動的にバインドするので、データにアクセスして属性とメソッドを演算することができます.これは、矢印関数を使用してライフサイクルメソッド(created:()=>thisなど)を定義できないことを意味します.fetchTodos()).これは、矢印関数が親コンテキストをバインドしているため、thisはあなたが期待しているVueインスタンスとは異なります.FetchTodosの動作は定義されていません.
data
var data = { a: 1 }
//
var vm = new Vue({
data: data
})
vm.a // -> 1
vm.$data === data // -> true
// Vue.extend() data
var Component = Vue.extend({
data: function () {
return { a: 1 }
}
//
data () {
return { a: 1 }
}
})
el
var vm = new Vue({
el: '#app', // DOM Vue 。 CSS , HTMLElement 。
template: xxx,
components: xxx,
data: {
xxx
}
})
template
var vm = new Vue({
el: xxx,
template: '' , // Vue 。
components: { },
data: {
xxxx
}
})
methods
//methods Vue 。
var vm = new Vue({
el: xxx
components: xxx
data (){
xxxx
}
methods: {
say: function () {
console.log(" , !")
}
}
})
vm.say() // VM , 。
インスタンスのプロパティ/メソッド(Vueインスタンスが呼び出せるプロパティ/メソッド)
vm.$data
Vue 。Vue data 。
vm.$el
Vue DOM 。
vm.$on、vm.$emit
vm.$on('test', function (msg) {
console.log(msg)
})
vm.$emit('test', 'hi')
// -> "hi"
// ↓↓↓↓↓↓↓↓
var vm = new Vue({
el: xxx,
data:{
sum: 0
},
methods:{
play(){
this.$emit('diy')
},
sayTotal(){
this.sum += 1
}
}
})
vm.$on('click', function () {
vm.sayTotal()
})
<p @diy="sayTotal">{
{ sum }}p>
<button @click="play"> button>
インストラクション
v-text
//js
var vm = new Vue({
el: '#app',
data: {
msg: ' ',
msg2: ' !'
}
})
// html
"app">
<p v-text="msg">p>
<p>{
{ msg }}p>
<p v-text="msg2">p>
<p>{
{ msg2 }}p>
div>
---
!
!
v-html
//js
var vm = new Vue({
el: '#app',
data: {
msg: ' ',
msg2: ' !'
}
})
//html
"app">
<p v-html="msg">p>
<p v-html="msg2">p>
div>
---
!
v-show
v-if ,v-for v-if 。
// , display CSS 。
"app">
<p v-show="true"> p>
<p v-show="false"> p>
div>
v-if 、v-else 、v-else-if
// 。 / 。 , 。
// 。
"app">
<p v-if="false"> 1p>
<p v-else> 2p>
<p v-if="false"> 3p>
<p v-else-if="false"> 4p>
<p v-else> 5p>
div>
//
if(){
: 1
}else{
: 2
}
if(){
: 3
}else if(){
: 4
}else{
: 5
}
v-for //js
var vm = new Vue({
el: '#app',
data: {
sayList:[
{ msg: ' , ! x1' },
{ msg: ' , ! x2' },
{ msg: ' , ! x3' },
{ msg: ' , ! x4' },
{ msg: ' , ! x5' },
]
}
})
<div id="app">
<p> : !p>
<p v-for="say in sayList"> : {
{ say.msg }}p>
<p v-for="(say, index) in sayList" > : {
{ say.msg }} | {
{ index }}p>
div>
//
: !p>
<p> : , ! x1p>
<p> : , ! x2p>
<p> : , ! x3p>
<p> : , ! x4p>
<p> : , ! x5p>
<p> : , ! x1 | 0p>
<p> : , ! x2 | 1p>
<p> : , ! x3 | 2p>
<p> : , ! x4 | 3p>
<p> : , ! x5 | 4p>
v-on
トランスファゲート
<button v-on:click="sayA"> button>
<button @click="sayA"> button>
<button @click="sayA(' ',$event)"> button>
<button @click.stop="sayA"> button>
<button @click.prevent="sayA"> button>
<input type="text" @submit.prevent>
<button @click.stop.prevent="sayA"> button>
<input @keyup.enter="sayA">
<input @keyup.13="sayA">
<button @click.once="sayA"> button>
<button v-on="{ mousedown: sayA, mouseup: sayB}">button>
<div id="on-click">
<p>{
{ total }}p>
<jianjun v-on:diy-son="eatTotal">jianjun>
div>
// js
Vue.component('jianjun', {
template: '',
data() {
return {
counter: 0
}
},
methods:{
eat(){
this.counter+=1
this.$emit('diy-son')
}
}
})
// Vue
var vm = new Vue({
el: '#on-click',
data: {
total: 0,
},
methods:{
eatTotal(){
this.total += 1
}
}
})
サブコンポーネントのカスタムリスニングがどのように されるかではなく、$on、v-on、$emitの3つの が になっていることに してください. v-bind
み みコンポーネント
コンポーネント
テンプレート
リストレンダリング
classとstyle
きレンダリング
イベントプロセッサ
フォームコントロールのバインド
プロパティ
トランジションエフェクト
カスタムコンポーネント
プラグイン
awesome vue(vue プラグインがたくさんあります)
タイムプラグイン(vue-date-picker)
シングルファイルコンポーネント
vue-cli
es6
vue-router
ルーティング
ネストされたルーティング
プログラミングナビゲーション
ネーミングルーティング
きビュー
リダイレクト
HTML 5 Historyモード
router-link
router-view
ルーティング オブジェクト
Vuex
State
Mutations
Actions
Getters
Modules
vue-resource
json-server
に ?
data a.list=true b list :if true
this ,