前端入門(三)Vue生命周期、組件技術、事件總線、

文章目錄

  • Vue生命周期
  • Vue 組件化編程 - .vue文件
    • 非單文件組件
      • 組件的注意點
      • 組件嵌套
      • Vue實例對象和VueComponent實例對象
      • Js對象原型與原型鏈
      • Vue與VueComponent的重要內置關系
    • 應用單文件組件構建
  • Vue腳手架 - vue.cli
    • 項目文件結構
    • ref
    • props
    • mixin
    • 插件
    • scoped樣式

Vue生命周期

在這里插入圖片描述

在這里插入圖片描述

  • 1、beforeCreate():數據代理尚未開始,此時無法通過vm訪問到data中的數據,methods中的方法。
  • 2、created():數據監測和數據代理完成了,可以通過vm訪問到data中的數據,methods中的方法。
  • 3、beforeMount():頁面呈現的是未經Vue編譯的DOM結構,所有對DOM的操作,最終都不奏效。
  • 4、mounted():頁面中呈現的是經過Vue編譯的DOM,此時對DOM的操作均有效,一般在此進行:開啟定時器、發送網絡請求、訂閱消息、綁定自定義事件等初始化操作。1-4步驟構成了掛載的主要流程
  • 5、beforeUpdate():此時數據是新的,但是頁面是舊的,即新的數據尚未更新到頁面上。
  • 6、updated():此時,頁面的顯示的是新數據,頁面和數據同步完畢。
  • 7、beforeDestroy():此時vm中所有的data、methods、指令等等,都處于可用狀態,馬上要執行銷毀的過程,一般在此階段:關閉定時器、取消訂閱消息,解綁自定義事件等收尾操作。
  • 8、destroyed():銷毀完畢。可以使用this.$destroy(),讓vue實例自己銷毀,Vue實例銷毀后,自定義事件會失效,但原生DOM事件依然有效。

Vue 組件化編程 - .vue文件

組件的定義——實現應用中局部功能代碼和資源的集合。

在這里插入圖片描述
在這里插入圖片描述

非單文件組件

一個組件文件中由多個其他組件構成,稱為非單文件組件。

Vue使用組件的三大步驟:

  • 1、定義組件(創建組件)
  • 2、注冊組件(Vue的components局部注冊或者使用Vue.component(‘組件名’, 組件))全局注冊。
  • 3、使用組件(寫組件標簽)

1、創建組件
創建組件時,需要注意:

  • 不需要寫el標簽:el標簽是將Vue實例與DOM元素綁定的,當你創建組件時,你并不知道需要將其用在哪里,因此不需要寫el標簽。
  • 組件的data屬性需要寫成函數式的:因為一個組件可能在多個地方使用,如果寫為對象式的,各個組件之間的數據變化會相互影響。
  • 使用Vue.extend({})創建組件,在template屬性中,使用反引號包裹HTML標簽。
    在這里插入圖片描述

在這里插入圖片描述

2、注冊組件
局部注冊:在Vue實例的components屬性中,標注上構建的組件。
在這里插入圖片描述

使用`Vue.componet(‘組件名’, 組件);可以注冊全局組件,即所有的Vue實例,盡管在components屬性中沒聲明該組件,也可直接使用。
在這里插入圖片描述

3、使用組件,寫組件標簽。
在這里插入圖片描述

組件的注意點

在這里插入圖片描述

組件嵌套

組件可以嵌套使用。注冊給誰的組件,就可以在它的template屬性中應用這個組件標簽。
在這里插入圖片描述

Vue實例對象和VueComponent實例對象

以定義的school組件為例:

  • 1、當我們使用school標簽時,本質上是調用了VueComponent構造函數,該構造函數是Vue.extend生成的。
  • 2、當使用school標簽時,Vue框架解析時會幫助創建school組件的實例對象,方式就是執行new VueComponent(options)
  • 3、特別注意,每次調用Vue.extend,返回的都有一個全新的VueComponent對象。
  • 4、關于this指向,組件配置中:data函數、methods中的函數,watch、computed函數,它們的this均是VueComponent實例對象。而在new Vue(options)配置中,data函數、methods中的函數,watch、computed函數,它們的this均是Vue實例對象
  • 5、根組件Vue實例對象會有$children屬性,其中就是VueComponent實例對象數組。
  • 6、Vue實例對象和VueComponent實例對象在創建時接收的options選項,除了Vue實例可以使用el 綁定具體的DOM標簽外,其余都一樣。

在這里插入圖片描述

Js對象原型與原型鏈

JavaScript 是一種基于原型的語言 (prototype-based language),每個對象擁有一個原型對象,對象以其原型為模板,從原型繼承方法和屬性,這些屬性和方法定義在對象的構造器函數的 prototype 屬性上,而非對象實例本身。

每個Js對象都會有一個名為__proto__的內部屬性,該屬性指向當前對象的原型對象。在Js中,當我們訪問一個對象的某個屬性時,如果該對象沒有這個屬性,Js語法引擎就會沿著該對象的原型鏈(在對象的__proto__上找)向上查找,直到找到該屬性為止。在查找對象屬性時,通過__proto__查找原型的屬性這個過程,就用到原型鏈。

當然在Js對象中,根原型為Object,而Object的__proto__是為null的。

原型屬性又可分為顯示原型屬性隱式原型屬性

  • 顯示原型屬性訪問:構造函數名.prototype
  • 隱式原型屬性訪問:實例對象名.__proto__
  • 由這兩種方式訪問到的原型對象是等價的,即指向的是同一個原型對象。構造函數名.prototype === 實例對象名.__proto__
  • 由原型鏈的屬性訪問方式可知,如果給原型對象添加一個屬性x = 99,那么可以由實例對象d的原型對象屬性訪問它,即d.__proto__.x,實際上對于__proto__的訪問是Js執行引擎自動完成的,因此d.__proto__.x訪問的方式,可以等價于使用d.x

在這里插入圖片描述

Vue與VueComponent的重要內置關系

VueComponent(Vue組件)的原型對象的原型對象是Vue的原型對象
在這里插入圖片描述

應用單文件組件構建

1、構建一個單文件組件
一個單.vue文件,基本結構如下;
在這里插入圖片描述
定義好單文件組件是為了提供給 別的文件使用,因此需要使用export將該文件進行暴露。
export default {
……
}
實際上是一種簡寫,等價于:
const vc = Vue.extend(
{
……
}
)

export vc

在這里插入圖片描述
2、入口Vue文件:App.vue
一般而言,Vue項目的根組件為App.vue,這里使用其他的組件。
組件化編程三步走:

  • 導入
  • 注冊
  • 使用標簽
    在這里插入圖片描述
    3、入口js文件:main.js
    構建的根組件App.vue并沒有使用,在main.js中構建App.vue的實例對象,使用el屬性為其綁定DOM對象。

在這里插入圖片描述

4、入口HTML文件:index.html
在這里插入圖片描述

Vue腳手架 - vue.cli

項目文件結構

在這里插入圖片描述

ref

props

mixin

插件

scoped樣式

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/167290.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/167290.shtml
英文地址,請注明出處:http://en.pswp.cn/news/167290.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

MBA-論證有效性分析

論證有效性分析∶分析下述論證中存在的缺陷和漏洞,選擇若干要點,寫一篇 600 字左石的文章.對該論證的有效性進行分析和評論。(論證有效性分析的一般要點是∶概念特別是核心概念的界定和使用是否準確并前后一致,有無各種明顯的邏輯…

cineSync 3.3新功能: 深入iconik集成、激光工具、OTIOZ支持等

cineSync 3.3為大家帶來了靈活性和精準度,使連接審閱會話與iconik中的媒體管理和存儲更加容易,并且引入了顏色配置文件以快速測試顏色配置,還有通過激光指針等新工具帶來新的可能性。 在ftrack,我們意識到當今的遠程創意工作流比以…

vue3 導出數據為 excel 文件

文章目錄 安裝插件封裝組件 -- Export2Excel.js多表封裝界面使用 -- 數據處理成二維數組更多 菜鳥最近做了一個需求,就是需要上傳表單并識別,然后識別出來的內容要可以修改,然后想的就是識別內容變成 form 表單,所以并沒有使用 Sp…

反爬蟲機制與反爬蟲技術(二)

反爬蟲機制與反爬蟲技術二 1、動態頁面處理與驗證碼識別概述2、反爬蟲案例:頁面登錄與滑塊驗證碼處理2.1、用例簡介2.2、庫(模塊)簡介2.3、網頁分析2.4、Selenium準備操作2.5、頁面登錄2.6、模糊移動滑塊測試3、滑塊驗證碼處理:精確移動滑塊3.1、精確移動滑塊的原理3.2、滑…

【模塊補充】importlib

importlib 【一】介紹 importlib 模塊是 Python 中用于動態加載和導入模塊的內置模塊。它提供了一組函數和類,使得我們可以在運行時根據需要加載模塊,并且可以對已導入的模塊進行操作和管理。 【二】詳解及示例: 【1】動態加載模塊&#…

PyQt6簡介

鋒哥原創的PyQt6視頻教程: 2024版 PyQt6 Python桌面開發 視頻教程(無廢話版) 玩命更新中~_嗶哩嗶哩_bilibili2024版 PyQt6 Python桌面開發 視頻教程(無廢話版) 玩命更新中~共計12條視頻,包括:2024版 PyQt6 Python桌面開發 視頻教程(無廢話版…

企業遠程訪問業務系統:對比MPLS專線,貝銳蒲公英為何更優優勢?

如今,企業大多都會采用OA、ERP、CRM等各種數字化業務系統。 私有云、公有云混合架構也變得越來越常見。 比如:研發系統部署在公司本地私有云、確保數據安全,OA采用公有云方案、滿足隨時隨地訪問需求。 如此一來,也產生了遠程訪問…

js前端跨屏效果

效果: 三個球 源碼: <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>三個球</title> </h…

js實現圖片懶加載

方式一&#xff1a;html實現 在img標簽加上 loading"lazy" 方式二&#xff1a;js實現 通過js監聽頁面的滾動&#xff0c;實現的原理主要是判斷當前圖片是否到了可視區域&#xff1a; 拿到所有的圖片 dom 。遍歷每個圖片判斷當前圖片是否到了可視區范圍內。如果到了…

Maven項目下詳細的SSM整合流程

文章目錄 &#x1f389;SSM整合流程一、兩個容器整合? 1、先準備好數據庫config.properties連接、mybatis-config.xml&#x1f38a; 2、容器一&#xff1a;優先配置spring.xml文件&#x1f38a; 3、容器二&#xff1a;配置springMVC.xml文件&#x1f38a; 4、Tomcat整合spring…

解釋PCIe MSI 中斷要求中斷向量連續?PCIe 規范里并沒有明確指出

MSI 向量必須連續&#xff1f; 前言 MSI 物理條件&#xff0c;MSI 中斷產生的邏輯是RC初始化的時候&#xff0c;由軟件將配置寫入到 EP 的 2 個寄存器中&#xff0c;這兩個寄存器一個指示的是地址 Message Address&#xff0c;一個指示的是數據 Message Data。當 EP 試圖觸發…

你再不學Git就來不及了!!!

其他系列文章導航 設計模式合集 多線程合集 分布式合集 ES合集 文章目錄 其他系列文章導航 文章目錄 前言 版本控制 什么是版本控制 為什么要版本控制 一、認識 Git 1.1Git 簡史 1.2Git 與其他版本管理系統的主要區別 1.3Git 的三種狀態 二、Git 使用快速入門 2.1獲…

springboot使用redis緩存亂碼(key或者 value 亂碼)一招解決

如果查看redis中的值是這樣 創建一個配置類就可以解決 package com.deka.config;import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; i…

CPU+GPU多樣化算力,ZStack Cloud助力游戲精釀核心業務上云

游戲精釀通過ZStack Cloud云平臺提供高性能、高可用的云主機、云存儲和云網絡&#xff1b;前期通過超融合架構快速構建云基礎設施&#xff0c;來支持Jira、Redis等關鍵業務&#xff1b;并實現對原有私有云平臺業務的替代&#xff0c;按需將原有私有云業務滾動遷移到ZStack Clou…

移動端瀏覽器 jquery 獲取 pdf blob文件流 預覽pdf

最近遇到一個需求&#xff0c;一個古早的移動端 juery 項目要求做一個頁面&#xff0c;從接口獲取 pdf 文件流&#xff0c;然后預覽出來 這里使用第三方工具&#xff1a;pdf.js 代碼如下&#xff1a; // 引入相關文件<script src"../js/pdf.js" type"text…

N_1 驗證密碼

N_1 驗證密碼 題目 設計一個用戶密碼驗證程序&#xff0c;要求密碼輸入只有3次機會&#xff0c;且密碼中不能包含”*”字符。 分析 需要考慮3個問題&#xff1a;驗證次數、特殊字符和正誤密碼判斷&#xff1b;驗證次數需要使用循環&#xff0c;3個問題需要用到分支結構&…

java 系統屬性和環境屬性

Java系統屬性和環境屬性都是與Java應用程序相關的參數&#xff0c;但它們有以下區別&#xff1a; 系統屬性是由Java虛擬機&#xff08;JVM&#xff09;設置的&#xff0c;而環境屬性是由操作系統設置的。 系統屬性是以“-D”開頭的命令行參數傳遞給JVM的&#xff0c;而環境屬性…

深入理解Spring AOP的工作流程

文章目錄 引言什么是AOP&#xff1f;Spring AOP的工作原理1. JDK動態代理2. CGLIB代理 Spring AOP的注解方式Aspect注解EnableAspectJAutoProxy注解 Spring AOP的工作流程拓展應用1. 自定義注解2. 異常處理3. 切面優先級 結論 &#x1f389;深入理解Spring AOP的工作流程 ☆* o…

關于運行軟件程序出現vcruntime140.dll丟失的修復教程-解決方案

vcruntime140.dll是Microsoft Visual C庫文件的一部分&#xff0c;用于支持Windows操作系統上的應用程序。如果找不到或丟失了這個文件&#xff0c;可能會導致某些應用程序無法正常運行。下面是關于vcruntime140.dll丟失的5個修復方法&#xff0c;以及vcruntime140.dll文件屬性…

Python基礎教程之分支結構詳解

文章目錄 一、分支結構二、單分支結構三、雙分支結構四、多分支結構五、嵌套分支結構六、三元表達式七、條件測試關于Python技術儲備一、Python所有方向的學習路線二、Python基礎學習視頻三、精品Python學習書籍四、Python工具包項目源碼合集①Python工具包②Python實戰案例③P…