摘要:的使用場(chǎng)景在中通過(guò)引入在中,由于配置有處理各種文件的,所以可以用引入指令簡(jiǎn)單值,數(shù)組,對(duì)象,數(shù)組中對(duì)象數(shù)組,對(duì)象自定義全局指令自定義指令名字指令生效周期配置對(duì)象被綁定的那個(gè)元素的原生對(duì)象一旦綁上馬上調(diào)用同上元素插入到之后再
1.Vue的使用場(chǎng)景 :
* 在html中通過(guò)script引入 * 在webpack中,由于配置有處理各種文件的loader,所以可以用import引入
2.Vue指令
v-cloak v-bind ==> : v-on ==> @ v-text v-html v-modal :class : 簡(jiǎn)單值,數(shù)組,對(duì)象,數(shù)組中對(duì)象 :style : 數(shù)組, 對(duì)象 v-for v-if v-show
自定義全局指令
Vue.derictive(自定義指令名字, 指令生效周期配置對(duì)象{ bind : (被綁定的那個(gè)元素的js原生對(duì)象el) => {}, ==> 一旦綁上馬上調(diào)用 inserted : (el同上) => {}, ==> 元素插入到DOM之后再調(diào)用 updated : (el同上, binding) => {} }
自定義局部指令
var vm2 = new Vue({ el: "#app2", data: {}, methods: {}, directives: { "fontweight": { bind: function (el, binding) { el.style.fontWeight = binding.value } }, } })
3.Vue事件修飾符
.stop .prevent .capture .self .once .self和.stop在阻止冒泡行為上的區(qū)別
4.Vue過(guò)濾器
全局過(guò)濾器的參數(shù)傳遞規(guī)則一樣;
如果全局過(guò)濾器和局部過(guò)濾器的名字相同,在組件內(nèi)部使用過(guò)濾器時(shí),優(yōu)先使用自己的內(nèi)部過(guò)濾器
全局過(guò)濾器
Vue.filter("自定義過(guò)濾器名字" , function(第一參數(shù)來(lái)自于管道符 | 前的數(shù)據(jù) , 后面的參數(shù)是該過(guò)濾器被調(diào)用時(shí)候傳遞過(guò)來(lái)的參數(shù)){}
局部過(guò)濾器
定義在Vue實(shí)例中的filter屬性中
var vm2 = new Vue({ el: "#app2", data: {}, methods: {}, filters: { dateFormat: function (dateStr, pattern = "") {} } }, })
5.Vue按鍵修飾符
按鍵修飾符像.self這樣的事件修飾符一樣,是用在v-on事件后面的。
.enter .tab .up .down .left .right .delete .esc .space
自定義全局按鍵修飾符
Vue.config.keyCodes.自定義按鍵修飾符名字 = 按鍵的碼值
6.Vue組件生命周期
beforeCreated(){} ==> data和methods中數(shù)據(jù)還沒(méi)初始化好 created(){} ==> data和methods中的數(shù)據(jù)已經(jīng)初始化好 beforeMount(){} ==> 模板已經(jīng)在內(nèi)存中編譯好了,但是沒(méi)有被渲染到頁(yè)面上 mounted(){} ==> 內(nèi)存中的模板已經(jīng)渲染到了頁(yè)面行,用戶可以看到頁(yè)面了 beforeUpdate (){} ==> data中的數(shù)據(jù)已經(jīng)更新,但是界面上的數(shù)據(jù)沒(méi)有更新 updated (){} ==> 界面上數(shù)據(jù)更新結(jié)束 beforeDestory (){} ==> 此時(shí)data和methods中數(shù)據(jù)還可以使用 destoryed (){} ==> data和methods中數(shù)據(jù)都不能使用了,Vnode被完全銷毀
7.Vue-resource
類似于axios,但是依賴于Vue.js. 引入后自動(dòng)給Vue實(shí)例添加上了$http屬性
$http.get() $http.post() $http.jsonp() 均返回一個(gè)promise this.$http.get("http://vue.studyit.io/api/getlunbo").then(function (result) { console.log(result.body) })
8.Vue動(dòng)畫
類名
v-enter v-enter-active v-enter-to v-leave v-leave-active v-leave-to
使用第三方類名
這是一個(gè)H3
動(dòng)畫的鉤子函數(shù)
beforeEnter (要執(zhí)行動(dòng)畫的那個(gè)對(duì)象的原生DOM對(duì)象el) {} ==> 動(dòng)畫入場(chǎng)之前,設(shè)置動(dòng)畫的起始樣式 enter (el , done) {done()} ==> 動(dòng)畫開始后樣式,設(shè)置動(dòng)畫結(jié)束樣式 afterEnter () {} ==> 動(dòng)畫完全結(jié)束回調(diào)
9.Vue創(chuàng)建組件
(1)組件模板對(duì)象創(chuàng)建
方式1: Vue.extend({ template : "" }) 方式2: 直接一個(gè) Object
(2)注冊(cè)全局組件
Vue.component(自定義組件名字, 組件模板)
(3)組件data和Vue實(shí)例data區(qū)別
組件data必須return object
10.組件切換和動(dòng)畫
組件切換
comName是變量
組件切換時(shí)的動(dòng)畫
11.組件父子間傳值
父組件傳值給子組件
傳單純值:傳函數(shù) this.$emit("func", this.sonmsg)
子組件給父組件傳值
通過(guò)父組件傳入函數(shù)的參數(shù)
$refs
12.Vue路由
和Vue-resource一樣,需要引進(jìn)一個(gè)vue-router.js文件
let routeObj = new VueRouter({ routes : [ {path : "" , redrect : "" , component : null} ] }) var vm = new Vue({ el: "#app", router: routerObj });
路由參數(shù)
login routes: [ { path: "/login/:id/:name", component: login , children : [{path , redrect , component , children}] }, ] $route.params.id
一個(gè)路由對(duì)應(yīng)多個(gè)組件
var router = new VueRouter({ routes: [ { path: "/", components: { "default": header, "left": leftBox, "main": mainBox } } ] })
13.watch監(jiān)視data中數(shù)據(jù)變化或者路由變化
var vm = new Vue({ el: "#app", data: {firstname: "",}, watch: { // 使用這個(gè) 屬性,可以監(jiān)視 data 中指定數(shù)據(jù)的變化,然后觸發(fā)這個(gè) watch 中對(duì)應(yīng)的 function 處理函數(shù) "firstname": function (newVal, oldVal) { this.fullname = newVal + "-" + this.lastname }, "$route.path": function (newVal, oldVal) { ==> 只需要這是一個(gè)變量 if (newVal === "/login") { console.log("歡迎進(jìn)入登錄頁(yè)面") } else if (newVal === "/register") { console.log("歡迎進(jìn)入注冊(cè)頁(yè)面") } } } });
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/101871.html
摘要:之前寫文章的時(shí)候,我說(shuō)過(guò)很多學(xué)習(xí)的方式和建議。今天換一下,說(shuō)一下我個(gè)人不建議的學(xué)習(xí)方式,或者我個(gè)人覺(jué)得是妨礙進(jìn)步的學(xué)習(xí)方式,希望大家引以為鑒如果大家有什么補(bǔ)充和指點(diǎn)的,歡迎指出。 1.前言 從事web前端的人很多,每個(gè)人的學(xué)習(xí)方式,學(xué)習(xí)習(xí)慣基本不會(huì)一模一樣!關(guān)于web前端(或者直接互聯(lián)網(wǎng)),大家都知道,是做到老,學(xué)到老的一個(gè)行業(yè)。之前寫文章的時(shí)候,我說(shuō)過(guò)很多學(xué)習(xí)的方式和建議。今天換一下...
摘要:相當(dāng)于可以編輯問(wèn)卷并提供問(wèn)卷展示,數(shù)據(jù)統(tǒng)計(jì)的這么一個(gè)平臺(tái)。極大的節(jié)省了需要進(jìn)行表單樣式修改的時(shí)間,同時(shí),讓動(dòng)態(tài)渲染表單成為一件可能且容易的事情。表單動(dòng)態(tài)渲染剛好在項(xiàng)目之前,有過(guò)一次動(dòng)態(tài)配置表單的嘗試通過(guò)字段自動(dòng)生成表單及驗(yàn)證。 近幾天來(lái)了個(gè)緊急項(xiàng)目,想要做一個(gè)內(nèi)部版本的問(wèn)卷星。相當(dāng)于可以編輯問(wèn)卷并提供問(wèn)卷展示,數(shù)據(jù)統(tǒng)計(jì)的這么一個(gè)平臺(tái)。整個(gè)項(xiàng)目耗時(shí)不長(zhǎng),本著積淀和積累的原則,將過(guò)程中的...
摘要:建議,每個(gè)欄目下放一個(gè)空列表組件,將空組件放在下拉刷新組件里面。下拉刷新請(qǐng)求兩次。請(qǐng)求結(jié)束后必須把下拉刷新綁定的置為,要不然又會(huì)多請(qǐng)求一次魅族手機(jī)按鍵返回桌面,再重新回到后列表上下劃不動(dòng)。魅族的返回鍵問(wèn)題,在換用列表插件后得到解決。 Vant ui + Vue.js 部分組件實(shí)踐 功能需求是實(shí)現(xiàn)一個(gè)移動(dòng)端的欄目列表切換,于此同時(shí)列表需要進(jìn)行下拉刷新,上拉加載 如下圖,大概是一個(gè)這樣...
閱讀 2894·2023-04-26 02:49
閱讀 3461·2021-11-25 09:43
閱讀 3436·2021-10-09 09:43
閱讀 3019·2021-09-28 09:44
閱讀 2461·2021-09-22 15:29
閱讀 4537·2021-09-14 18:02
閱讀 2794·2021-09-03 10:48
閱讀 3438·2019-08-30 12:47