答:區別:vue數據驅動,經過數據來顯示視圖層而不是節點操做; vue
場景:數據操做比較多的場景,更加便捷。jquery
答: v-if:判斷是否隱藏;git
v-for:數據循環出來;es6
v-bind:class:綁定一個屬性;github
v-model:實現雙向綁定。面試
答:低耦合、可重用、性獨立開發、可測試。ajax
答:vue 實例從建立到銷燬的過程,就是生命週期。也就是從開始建立、初始化數據、編譯模板、掛載Dom→渲染、更新→渲染、卸載等一系列過程,咱們稱這是 Vue 的生命週期。(簡略描述)vue-cli
總共分爲8個階段:(詳細描述)編程
beforeCreate----建立前json
組件實例更被建立,組件屬性計算以前,數據對象data都爲undefined,未初始化。
created----建立後
組件實例建立完成,屬性已經綁定,數據對象data已存在,但dom未生成,$el未存在
beforeMount---掛載前
vue實例的$el和data都已初始化,掛載以前爲虛擬的dom節點,data.message未替換
mounted-----掛載後
vue實例掛載完成,data.message成功渲染。
beforeUpdate----更新前
當data變化時,會觸發beforeUpdate方法
updated----更新後
當data變化時,會觸發updated方法
beforeDestory---銷燬前
組件銷燬以前調用
destoryed---銷燬後
組件銷燬以後調用,對data的改變不會再觸發周期函數,vue實例已解除事件監聽和dom綁定,但dom結構依然存在
答:父組件向子組件傳值:
1)子組件在props中建立一個屬性,用來接收父組件傳過來的值;
2)在父組件中註冊子組件;
3)在子組件標籤中添加子組件props中建立的屬性;
4)把須要傳給子組件的值賦給該屬性
子組件向父組件傳值:
1)子組件中須要以某種方式(如點擊事件)的方法來觸發一個自定義的事件;
2)將須要傳的值做爲$emit的第二個參數,該值將做爲實參傳給響應事件的方法;
3)在父組件中註冊子組件並在子組件標籤上綁定自定義事件的監聽。
答:mvc和mvvm其實區別並不大。都是一種設計思想。主要就是mvc中Controller演變成mvvm中的viewModel。mvvm主要解決了mvc中大量的DOM 操做使頁面渲染性能下降,加載速度變慢,影響用戶體驗。和當 Model 頻繁發生變化,開發者須要主動更新到View 。
答:即:Model View VM
Model 是數據, data;
View 是模板;
VM 是 vm = new Vue();
VM 用了鏈接數據和視圖, 視圖的輸入框綁定了v-model, 用戶輸入後會改變data; Model改變也會同步視圖更新相關的依賴, 雙向綁定就是vm起了做用。
答:① 直接修改地址欄中的路由地址
② 經過router-link實現跳轉:
<
router-link
to
=
"/myRegister"
>註冊</
router-link
>
③ 經過js的編程的方式:
jumpToLogin:
function
() {
this
.$router.push(
'/myLogin'
);
}
答: ① 後臺更改header(最多見也是最經常使用的解決辦法):
header('Access-Control-Allow-Origin:*');//容許全部來源訪問
header('Access-Control-Allow-Method:POST,GET');//容許訪問的方式
② 使用JQuery提供的jsonp :
methods: {
getData () {
var self = this
$.ajax({
url: 'http://f.apiplus.cn/bj11x5.json',
type: 'GET',
dataType: 'JSONP',
success: function (res) {
self.data = res.data.slice(0, 3)
self.opencode = res.data[0].opencode.split(',')
}
})
}
} 複製代碼複製代碼
③ 使用http-proxy-middleware 代理解決(項目使用vue-cli腳手架搭建)
答:1. 變量聲明const和let;
2. 模板字符串;
3. 箭頭函數;
4. import導入模塊、export導出模塊;
5. promise