vue 基礎(chǔ)
構(gòu)造器 :**new Vue() **
數(shù)據(jù)綁定 計(jì)算屬性:
el :,data:{}芹务,watch:{} ,methods:{}, computed:{}
vue實(shí)例屬性與方法:帶有前綴 $鹅经,以便與data屬性區(qū)分例如
$watch("a", function())
//觀察vue實(shí)例里面的a變化后調(diào)用function(){},
//注意function(){}不能是箭頭函數(shù)锅很,因?yàn)榧^函數(shù)的this被綁定
vue生命周期
created mounted updated destoryed
vue 的this指向vue實(shí)例click
vue的模板語(yǔ)法
{{a}}
v-bind: =》用來(lái)響應(yīng)式更新綁定屬性
v-bind:href="" 縮寫(xiě) ==> :href=""
v-bind:class:"{classA: tureOrFaule, classB: TureOrFaule}"
v-on: click ==> @click
v-on: $on(" ") 監(jiān)聽(tīng)事件
v-on: $emit('' ") 觸發(fā)事件
vue的過(guò)濾器窿冯?赵抢?剧蹂??
條件渲染 v-if/v-show
列表渲染 v-for
v-model 雙向數(shù)據(jù)綁定
var app5 = new Vue({
// 綁定到 dom 通過(guò)id 烦却,在vue里的“宠叼,”(逗號(hào))el data
結(jié)束后要有逗號(hào) 最后一個(gè)不用寫(xiě)
el: '#app',
//數(shù)據(jù)要放在data里
data: {
//在html嵌入綁定數(shù)據(jù)message要用“{{...}}”表示
message: 'Hello Vue.js!'
},
//function要放在methods里
methods: {
reverseMessage: function () {
this.message = this.message.split('').reverse().join('')
}
}
})
vue組件
Vue.component(tagName, options)
HTML 特性不區(qū)分大小寫(xiě)。當(dāng)使用非字符串模版時(shí)其爵,名字形式為 camelCase 的 prop 用作特性時(shí)冒冬,需要轉(zhuǎn)為 kebab-case(短橫線隔開(kāi)):
使用v-model 來(lái)進(jìn)行數(shù)據(jù)雙向綁定?{{}}
Vue 實(shí)例都會(huì)代理其data對(duì)象里所有的屬性醋闭。
var data = { a: 1 }
var vm = new Vue({
data: data
})
vm.a === data.a // -> true
// 設(shè)置屬性也會(huì)影響到原始數(shù)據(jù)
vm.a = 2
data.a // -> 2
// ... 反之亦然
data.a = 3
vm.a // -> 3
Vue 實(shí)例暴露了一些有用的實(shí)例屬性與方法窄驹。這些屬性與方法都有前綴$,以便與代理的 data 屬性區(qū)分
var data = { a: 1 }
var vm = new Vue({
el: '#example',
data: data
})
vm.$data === data // -> true
vm.$el === document.getElementById('example') // -> true
// $watch 是一個(gè)實(shí)例方法
vm.$watch('a', function (newVal, oldVal) {
// 這個(gè)回調(diào)將在 `vm.a` 改變后調(diào)用
})
vm.$watch('a', function (newVal, oldVal) {// 這個(gè)回調(diào)將在 vm.a
改變后調(diào)用})
v-bind
指令將該元素的href屬性與表達(dá)式url的值綁定<a v-bind:href="url"></a>
v-on
它用于監(jiān)聽(tīng) DOM 事件<a v-on:click="doSomething">
注冊(cè)組件
// 全局注冊(cè)
Vue.component('my-component', {
template: '<div>A custom component!</div>'
})
// 創(chuàng)建根實(shí)例
new Vue({
el: '#example'
})
var Child = {
template: '<div>A custom component!</div>'
}
new Vue({
// ...
components: {
// <my-component> 將只在父模板可用
'my-component': Child
}
})
date必須是函數(shù)(使用組件時(shí))
使用$on(eventName)
監(jiān)聽(tīng)事件
使用$emit(eventName)
觸發(fā)事件
<div id="example-2">
<simple-counter></simple-counter>
<simple-counter></simple-counter>
<simple-counter></simple-counter>
</div>
var data = { counter: 0 }
Vue.component('simple-counter', {
template: '<button v-on:click="counter += 1">{{ counter }}</button>',
// data 是一個(gè)函數(shù)证逻,因此 Vue 不會(huì)警告乐埠,
// 但是我們?yōu)槊恳粋€(gè)組件返回了同一個(gè)對(duì)象引用
data: function () {
return data
}
})
new Vue({
el: '#example-2'
})
vue-router
<div id="app">
<h1>Hello App!</h1>
<p>
<!-- 使用 router-link 組件來(lái)導(dǎo)航. -->
<!-- 通過(guò)傳入 `to` 屬性指定鏈接. -->
<!-- <router-link> 默認(rèn)會(huì)被渲染成一個(gè) `<a>` 標(biāo)簽 -->
<router-link to="/foo">Go to Foo</router-link>
<router-link to="/bar">Go to Bar</router-link>
</p>
<!-- 路由出口 -->
<!-- 路由匹配到的組件將渲染在這里 -->
<router-view></router-view>
</div>
如果使用模塊化機(jī)制編程, 要調(diào)用 Vue.use(VueRouter)
// 0. 如果使用模塊化機(jī)制編程囚企, 要調(diào)用 Vue.use(VueRouter)
// 1. 定義(路由)組件丈咐。
// 可以從其他文件 import 進(jìn)來(lái)
const Foo = { template: '<div>foo</div>' }
const Bar = { template: '<div>bar</div>' }
// 2. 定義路由
// 每個(gè)路由應(yīng)該映射一個(gè)組件。 其中"component" 可以是
// 通過(guò) Vue.extend() 創(chuàng)建的組件構(gòu)造器龙宏,
// 或者棵逊,只是一個(gè)組件配置對(duì)象。
// 我們晚點(diǎn)再討論嵌套路由银酗。
const routes = [
{ path: '/foo', component: Foo },
{ path: '/bar', component: Bar }
]
// 3. 創(chuàng)建 router 實(shí)例辆影,然后傳 `routes` 配置
// 你還可以傳別的配置參數(shù), 不過(guò)先這么簡(jiǎn)單著吧徒像。
const router = new VueRouter({
routes // (縮寫(xiě))相當(dāng)于 routes: routes
})
// 4. 創(chuàng)建和掛載根實(shí)例。
// 記得要通過(guò) router 配置參數(shù)注入路由蛙讥,
// 從而讓整個(gè)應(yīng)用都有路由功能
const app = new Vue({
router
}).$mount('#app')
// 現(xiàn)在锯蛀,應(yīng)用已經(jīng)啟動(dòng)了!
vuex
//install
npm install vuex
// loading vuex and use
import vuex from 'vuex'
import vue from 'vue'
vue.use(vuex)
在 Vue.js 中次慢,父子組件的關(guān)系可以總結(jié)為 props down, events up 旁涤。父組件通過(guò) props 向下傳遞數(shù)據(jù)給子組件,子組件通過(guò) events 給父組件發(fā)送消息迫像∨蓿看看它們是怎么工作的。