Vue.js深入學習

2021-01-11 寒夫子

#VUE#

vue.js

v-cloak:解決網速慢閃爍問題 ,不會替換掉標籤裡面的內容

v-text:會替換掉標籤裡面的內容:原樣輸出

v-html:會解析標籤

v-bind:綁定屬性的指令,縮寫 : 只能實現數據的單向綁定。從M自動綁定到V,無法實現數據的雙向綁定

v-on 綁定事件:縮寫@

<div>{{mgs2}}div>

<p v-cloak>{{msg}}----p>

<p v-text="msg">==========p>

<div v-text="mgs2">div>

<div v-html="mgs2">div>

<input type="button" value="按鈕" :title="mytitle+'123'">

箭頭函數:解決this指向問題, 內部的this 和外部的this保持一致,

使用. @click.stop="btnHandle" 阻止事件冒泡 從裡到外

.prevent 阻止默認行為,連結跳轉,

.capture 實現捕獲觸發事件的機制 從外到裡

.self 只有點擊當前元素時觸發,冒泡和捕獲都不管用,

.once 只觸發一次事件處理函數

.stop和.self的區別

.self只會阻止自己身上冒泡行為,並不會阻止其他元素的冒泡行為

v-model :實現表單元素和Model中數據的雙向數據綁定,只能用在表單元素中

類樣式:使用v-bind 數組

數組中使用三元表達式,:class="['thin','italic',{'active:false'}]"

對象 :class={red:true,thin:true,italic:false}

:style={color:'red','font-weight':200}

v-for=" count in 10"

in 後面可以放 普通數組,數組對象,對象,數字,如果是數字,count 從1 開始

key 屬性只能使用數字和字符串,在使用的時候必須用v-bind屬性綁定的形式指定唯一的字符串或

數字類型 :key的值,

v-if 每次會重新刪除或創建元素,

v-show:設置元素的display:none 樣式 ,頻繁切換用v-show ,

foreach some filter findIndex

String.prototype.includes()包含方法

$(':contains("哈")') 包含哈的標籤

過濾器:

全局過濾器:所有vm實例都可以使用

{{ msg| 過濾器名字(參數) | 過濾器名字(參數)}}

Vue.filter("過濾器名字",function(data,參數){

});

私有過濾器:

fliters:{

}

如果 私有過濾器和全局過濾器的名稱一致了,調用私有過濾器,採取就近原則

String.prototype.padStart(2,'0');

String.prototype.padEnd(2,'0');

鍵盤修飾符:@keyup.enter="add"

@keyup.113="add"

自定義鍵盤碼: Vue.config.keyCodes.f2=113;

全局指令:

1.Vue中所有的指令都以v-開頭

2.參數1,指令的名稱,定義的時候,指令的前面不需要加V-前綴,

用的時候才加

3.參數2,是一個對象,這個對象身上有一些指令相關的函數,這些函數在特定的階段執行

相關的操作

Vue.directive('focus',{

bind:function(el){

函數中第一個參數永遠是el,表示被綁定了指令的那個元素,是一個原生的js對象

//每當指令綁定到元素上的時候,會立刻執行這個bind函數,只執行一次

inserted:function(){

//元素插入到dom中的時候,會執行一次

update:function(){

//當VNode更新的時候,會執行,可能會觸發多次

});

私有指令:

diectives:{}

Vue生命周期

一 創建階段:

1.在beforeCreate()生命周期函數執行的時候,data 和methods中的數據都還沒有初始化

2.在created()中,data 和methods都已經被初始化好了,如果要調用methods中的方法

或者操作data中的數據,最早只能在created中操作

3.在beforeMount()函數執行的時候,模版已經在內存中編輯好了,但是尚未掛載到

頁面中去,此時,頁面還是舊的

4.mounted()表示內存中的模版已經真實的掛載到了頁面中,用戶

已經可以看到渲染好的頁面了,是實例創建期間的最後一個生命周期

函數,當執行完mounted就表示整個Vue實例已經初始化完畢了,

此時,組件已經脫離了創建階段進入到了運行階段

二 運行階段

beforeUpdate() 執行的時候頁面還是舊的,此時data中的數據是新的,頁面尚未和最新的數據保持同步

updated(), 頁面和data數據已經保持同步了,都是最新的

這兩個事件會根據data數據的改變有選擇性的觸發0次或多次

三 銷毀階段:

beforeDestroy() Vue實例就已經從運行階段進入到了銷毀階段,實例身上所有的data和所有的methods,以及過濾器

指令....都處於可用狀態,還有真正執行銷毀過程

destroyed 所有的數據、方法、指令、過濾器·····不可用了

vue-resource 發 get post .json ,請求

Vue.http.options.root="";

請求的路徑應該以相對路徑開頭,不能帶"/"

Vue.http.options.emulateJSON=true;

動畫:

1.使用transition標籤包裹起來

. v-enter,

.v-leave-to{}

.v-enter-active,

.v-leave-avtive{}

2.半場動畫

@before-enter="beforeEnter"

@enter="enter"

@after-enter="afterEnter"

在實現過度的時候,如果需要過渡的元素是通過v-for 循環渲染出來的

需要使用transitionGroup標籤包裹

v-for 循環創建的元素設置動畫,必須為每一個元素設置:key屬性

.v-move{

transition:all 0.6s ease;

.v-leave-active{

position:absolute;

兩個配合使用可以實現列表後續的元素漸漸的飄上來的效果

給transitionGroup 添加appear屬性實現頁面剛展示出來時候入場的效果,

設置tag="ul" , 指定transitionGroup渲染為指定的元素,如果不指定

tag屬性,默認渲染為span標籤

相關焦點

  • 什麼是VUE?VUE與JS的對比
    我們需要讓所有綁定的對象和元素都能感知到變化1.1.1. vue與js的對比1.1.1.1. js的實現(了解)<!引入js文件--><script src="../node_modules/vue/dist/vue.js"></script></head><body><!--2.
  • Vue.js 教程:構建一個特斯拉汽車餘電計算器
    作為本教程的起點,請克隆這個 Github 存儲庫:https://github.com/petereijgermans11/workshop-reactjs-vuejs然後轉至 vuejs-app 目錄。
  • 4種可用於組織大型Vue.js項目的最佳實踐
    全文共3777字,預計學習時長10分鐘不過在深入了解之後,我可以自信地說並非如此。因此,本文將討論4種可用於組織大型Vue.js項目的最佳實踐。1.使用Vue Slots使代碼易於理解父子關係是組件之間相互連接的最常用方法之一,但有時這可能並不是最佳選擇。想像一下,如果出現在單個父組件中有大量子組件的情況,那麼可能就不得不使用大量道具和發出事件來處理這些子組件,很快一切會變得一團糟。
  • Angular、React 當前,Vue.js 優劣幾何?
    很多時候,人們不會給 Vue.js 足夠的關注。因此,我想分享一些有關 Vue.js 的信息,以及我在使用 Vue.js 來構建生產應用中獲得的一些個人經驗。現在讓我們一起來問這個問題:Vue.js 是適合你的框架嗎?注意:我並不想說 Vue.js 比 React、Angular 或者其它的任何前端框架好。這裡我分享的只是我在項目中使用 Vue.js 而獲得的一些個人體驗。
  • 5分鐘帶你入門vuex(vue狀態管理)
    如果你之前使用過vue.js,你一定知道在vue中各個組件之間傳值的痛苦,在vue中我們可以使用vuex來保存我們需要管理的狀態值,值一旦被修改,所有引用該值的地方就會自動更新,那麼接下來我們就來學習一下vuex是如何修改狀態值的:我們新建一個vue項目(這裡由於我們是講解vuex,所以對於vue項目的創建我們不會講解太詳細);在命令行輸入 vue init
  • vue高級進階系列——用typescript玩轉vue和vuex
    本文轉載自【微信公眾號:趣談前端,ID:beautifulFront】經微信公眾號授權轉載,如需轉載與原文作者聯繫用過vue的朋友大概對vuex也不陌生,vuex的官方解釋是專為 Vue.js 應用程式開發的狀態管理模式。它採用集中式存儲管理應用的所有組件的狀態,並以相應的規則保證狀態以一種可預測的方式發生變化。
  • Vue全家桶之什麼是Vuex
    Vuex的工作流程如何創建項目由於VueX是在學習VueCli後進行的,所以在下文出現的項目如何創建請參照上一篇文章《Vue全家桶之Vue2.X和Vue3.X腳手架創建項目的不同方式》或者在我的主頁查看以下項目目錄是Vue cli3.x創建的由於在創建項目時就安裝了Vuex所以目錄中以及創建好了store文件夾下的index.js也可以手動安裝 輸入命令 npm i vuex -s ,然後在項目的根目錄下新增一個store
  • vue3.0手機聊天室|Vue3+Vant3仿微信界面
    項目簡介Vue3Chat是基於vue3.x+vuex4+vue-router4全家桶技術和vant3.x構建開發的一款mobile仿微信界面聊天實例。實現了發送圖文消息、圖片|視頻預覽、位置查看、紅包|朋友圈等功能。
  • Vue+Axios+Vuex+Vux+Vue-Router全家桶搭建前端框架
    其實也不難,秉承效率第一的原則,首先我們必須選擇一個能提高我們工作效率的,所以此時就要對他們有一個簡單的了解,簡單說一下:一、Angular依託於老大哥Google,應用很廣泛,而且相對來說比較成熟穩定一些,然而他有一些比較晦澀難懂的語法,雙向綁定不是容易理解;而且學習成本相對來說比較大,入手不容易,況且很難與現有項目無縫融合,開發成本也就高了;二、再來看看React,出身名門
  • 如何寫一個vue組件專題及常見問題 - CSDN
    如何使用vue寫一個組件庫新建vue項目使用vue-cli初始化一個項目:vue init webpack VueComponentcd VueComponentnpm installnpm run dev以上就新建好了一個vue項目項目目錄首先,定義好目錄,經過觀察大多數的組件庫,基本是這樣的目錄
  • Vue 3 的最新進展
    Vue.js 作者尤雨溪近日介紹了 Vue 3 的最新進展。Vue Router目前存在部分與 vue-router@3.x 相關的路由鉤子(router hook)行為一致性問題,這也是 Vue Router 沒有被標記為 Beta 的原因。不過在非關鍵項目上可以使用新的路由。
  • ref vue 獲取文本專題及常見問題 - CSDN
    ref的官網介紹https://cn.vuejs.org/v2/api/#ref需求在普通的js操作中,一般都是直接操作dom元素,但是對於Vue.js框架來說,一般是不允許直接操作dom元素的。那麼其實Vue.js框架提供了ref獲取dom元素,以及組件引用。
  • slot vue 具名專題及常見問題 - CSDN
    vue的slot1、什麼是slotslot是插槽,插即是可以插入,槽就是坑,即是可以再代碼中插入如果子組件模板中不包含插口,那麼父組件的內容將會被丟棄。當子組件模板中有一個麼有屬性的插槽時,父組件傳入的整個內容片段,將插入到插槽所在的dom的位置,並替換掉插槽標籤本身。
  • template標籤 vue 作用專題及常見問題 - CSDN
    template slot="footer"> <p>底部信息信息1</p> <p>底部信息信息2</p> </template> </base-layout> </div> <script type="text/javascript" src="js
  • a標籤 href vue專題及常見問題 - CSDN
    vue.js 實現a標籤href裡添加參數原始碼列表可以正常顯示,但是連接沒有實現對items.orderNo的值轉化,最中解決方法
  • 在vue項目中使用vuex實現狀態管理的案例
    並不需要使用vuex。vuex的使用與否在實際開發中應該視項目情況而定。準備工作:a.在vue項目中安裝vuex: npm install vuex -S。b.了解下vuex的五個屬性。vuex個屬性五個屬性的作用:state:用來存儲vuex的基本數據。
  • vue 具名插槽詳解專題及常見問題 - CSDN
    插槽含義:就是引入子組件後,在插入子組件元素中添加信息或者標籤,使得子組件的指定位置插入信息或者標籤插槽有三種:默認插槽、具名插槽、作用域插槽,由於vue2.6.0後對插槽進行修改,但是兼容2.6.0前的版本,博文中只說明2.6.0後的插槽,vue3.0後面會去除2.60前的版本兼容  一、默認插槽<
  • 如何創建vue項目並使用element框架中的el-select
    1、在電腦硬碟上,找到一個位置,新建一個文件夾wmn;滑鼠右鍵選擇Git Bash Here,並在Git窗口輸入cnpm install --global vue-cli命令:cnpm install --global vue-cli
  • vue-element-admin 4.0.0 正式版發布
    重大改變 基於 vue-cli@3進行構建 調整了項目的目錄結構 mock 文件移至根目錄下 layout 從 views 文件夾下移至 src 下 使用了最新的 eslint-plugin-vue
  • 什麼是MVVM,MVC和MVVM的區別,MVVM框架VUE實現原理
    比如vue,通過數據的雙向綁定,極大了提高了開發效率。3. MVVM框架:VUE的介紹Vue就是基於MVVM模式實現的一套框架,在vue中:Model:指的是js中的數據,如對象,數組等等。1.如果你已經有一個現成的服務端應用,你可以將vue 作為該應用的一部分嵌入其中,帶來更加豐富的交互體驗;2.如果你希望將更多業務邏輯放到前端來實現,那麼VUE的核心庫及其生態系統也可以滿足你的各式需求(core+vuex+vue-route)。