Vue的基本語法和常用指令

2022-08-12 22:18:18 字數 3240 閱讀 1361

vue是一套用於構建使用者介面的漸進式框架。與其它大型框架不同的是,vue 被設計為可以自底向上逐層應用。vue 的核心庫只關注檢視層,不僅易於上手,還便於與第三方庫或既有專案整合。另一方面,當與現代化的工具鏈以及各種支援類庫結合使用時,vue 也完全能夠為複雜的單頁應用提供驅動。

mvvm:雙向資料繫結 mv vm 無需關注 dom操作(無需關注檢視),只需要關注資料即可

元件化:元件 頁面上的 公共小單元(如 網頁頭部 商品卡片)

首先用script標籤引入vue.js

let vm = new vue(

}) vue mvvm原理

利用es5 defineproperty()

攔截 資料的設定和獲取,動態的改變檢視

} 模板  插值  展示 vue 狀態(可以是乙個資料也可以是乙個函式返回資料)

} 可以寫 簡單的js表示式 (加減乘除 三目 短路)

注意:1,不能寫語句

var a=10;

a+b2,能不能流程控制 不能寫流程控制 只能寫三目 或者短路

3,模板中 js全域性變數有些可以使用有些不可以使用(vue有乙個白名單)

let vm = new vue(

})vm.$mount(document.queryselector("#box"));

vue 擴充套件了 標籤屬性的功能,賦予它一些特殊的功能

語法: v-指令名字

使用方法:同標籤的屬性

v-model   將表單的值 與 data中的狀態 進行 雙向繫結

v-text    將元素的內容 與data狀態進行雙向繫結

v-html    將內容解析成 html (慎重使用,一般後台返回富文字內容時使用)

v-bind:屬性  擴充套件了是任意屬性(可以包括自定義屬性,也可以是標籤預設的屬性)

幹了什麼事:

將屬性的值 變成動態的值,和 vue的data中的state進行繫結

簡寫:    :屬性

v-on:事件

將元素的事件 與 methods中的方法進行繫結(方法變成事件函式)

事件呼叫時  全域性變數 $event 儲存了事件物件

簡寫: @事件

注意:vue

v-on:事件="這裡不適合寫過多的業務邏輯**"

}原因:

只能使用一些簡單的表示式,不能寫語句,不能使用 邏輯控制語句,很多js全域性變數也不能使用(白名單裡面的才能用)

檢視 中一般只簡單的展示資料,呼叫命令,不適合 寫過多的業務邏輯**,否則會造成,**混亂(高耦合)

修飾符是由點開頭的指令字尾來表示的。賦予了事件一些特殊的功能 addeventlistener("事件名",函式,true/false)

.stop  阻止事件冒泡

.prevent  阻止預設事件

.capture    在捕獲階段觸發

.self   只能通過元素本身觸發,後代元素無法觸發

.oncvuee  只觸發一次

一切以資料為核心 不要去操作dom

v-if

v-else-if

v-else

v-show

v-if和v-show的區別以及使用場景?

1,當元素消失時不出來時。v-show 是display:none v-if直接dom移除節點

都有啥使用場景:

場景1: **塊 **很多,預設是不顯示的,後面有條件的顯示   v-if

首次載入 惰性的

v-if 有更高的切換開銷,而 v-show 有更高的初始渲染開銷。

元件化:元件可以理解為 網頁上 獨立的乙個部分 (如網頁頭部)

vue:  元件也是vue例項 (例項的屬性 元件都有)

如何定義乙個元件

let commonheader =

},methods:

}如何區分全域性元件和區域性元件? 在vue上註冊的就是全域性元件 在某個元件或者例項中註冊的就是區域性元件

全域性元件 

在任意的元件和例項上使用

vue.component("元件名",

},methods:

})區域性元件  只能在註冊的元件或者例項上使用

注意:1,元件中的data 必須是 乙個函式 返回乙個物件

2,每個元件有自己的作用域,元件內部的資料,和方法只能在元件內部使用(如向跨元件,需要元件間通訊)

3,元件的命名 可以有兩種 1大駝峰 2下劃線命名法

eg:commonhead   common-head

使用時二者都一樣

4,區域性元件 在哪個元件的components中註冊,就只能在這個元件的template中使用

5,元件的template 有且只能有乙個根標籤(元素)

1,簡單用法

在子元件中 定義props屬性 值是乙個陣列 陣列中 每個元素,就是 從父元件接收的 資料

子元件let  commonhead=

在父元件中 使用 子元件 的自定義標籤中 通過 屬性的形式 傳入 父元件的資料

父元件let home =

},components:

}2,props驗證

上面的props用法,沒有校驗 props資料型別,以及必須填寫,預設值 等,會造成 程式 存在 不穩定性 (**不健壯)

驗證主要驗證三個型別:

資料型別

string

number

boolean

array

object

date

function

symbol

必須填寫

required:true/false 如果為false 就別寫了

預設值:

default

注意:props 不再是陣列 而是物件

props:,c:}

注意:1,當 乙個陣列 型別為 資料的時候 傳資料時,不能直接靜態傳乙個資料(傳的是字串)

2,資料型別為 array,或者object 預設值 必須是乙個 函式 返回乙個預設值

3,props 能在子元件中 直接改變值嗎?  不能(單向資料流)

在子元件中 通過

名字 child元件

this.$emit("事件名",攜帶的資料)

父元件 parent中使用}}

原理:利用乙個第三方的 元件 進行彈射事件,且 進行接收事件

let  bus = new vue();

彈射:bus.$emit("事件名字",攜帶的引數)

監聽事件:

bus.$on(事件名,**函式)

Vue筆記二 Vue基本語法及指令

new vue 方法用於建立乙個vue例項 乙個vue應用由至少乙個vue例項作為根元件 以及可選的多個巢狀元件組成 vue 使用基於html的模板語法 當然也可以不用模板直接寫渲染 render 函式使用jsx語法,此處不做討論 文字插值 在html文字中標記可能發生變化的位置的 語法 musta...

vue常用指令和標籤

5 v if v show 6 在 vm 例項中,如果要訪問 data 上的資料,或者要訪問 methods 中的方法,必須帶 this 7常見標籤 v text會覆蓋元素中原本的內容,但是 v cloak 插值表示式 只會替換自己的這個佔位符,不會把 整個元素的內容清空 v html是以html的...

vue基本指令

指令是一些特殊的標記,給html新增一些原來沒有的功能 指令一 v model type text v model num type checkbox v model ischecked div const vm newvue 雙向資料繫結的原理底層通過 object.defineproperty ...