vue005——vue組件入門(非單文件組件和單文件組件)

一、非單文件組件

1.1、單文件組件的使用

1.1.1、局部注冊

1、第一步:創建school組件
2、第二步:注冊組件(局部注冊)
3、第三步:使用組件(編寫組件標簽)

<!DOCTYPE html>
<html><head><meta charset="UTF-8" /><title>基本使用</title><script type="text/javascript" src="../js/vue.js"></script></head><body><!-- 準備好一個容器--><div id="root"><h1>{{msg}}</h1><hr><!-- 第三步:編寫組件標簽 --><school></school></div></body><script type="text/javascript">Vue.config.productionTip = false//第一步:創建school組件const school = Vue.extend({template:`<div class="demo"><h2>學校名稱:{{schoolName}}</h2><h2>學校地址:{{address}}</h2><button @click="showName">點我提示學校名</button>	</div>`,// el:'#root', //組件定義時,一定不要寫el配置項,因為最終所有的組件都要被一個vm管理,由vm決定服務于哪個容器。data(){//注意:這里的data要寫成函數式return {schoolName:'Vue學堂',address:'大牛嶺'}},methods: {showName(){alert(this.schoolName)}},})//創建vmnew Vue({el:'#root',data:{msg:'你好啊!'},//第二步:注冊組件(局部注冊)components:{school}})</script>
</html>

在這里插入圖片描述

1.1.2、全局注冊

<!DOCTYPE html>
<html><head><meta charset="UTF-8" /><title>基本使用</title><script type="text/javascript" src="../js/vue.js"></script>
</head><body><!-- 準備好一個容器--><div id="root"><!-- 第三步:編寫組件標簽 --><hello></hello><h1>{{msg}}</h1></div><hr><div id="root2"><!-- 第三步:編寫組件標簽 --><hello></hello></div>
</body><script type="text/javascript">Vue.config.productionTip = false//第一步:創建hello組件const hello = Vue.extend({template: `<div>	<h2>你好啊!{{name}}</h2></div>`,data() {//注意:這里的data要寫成函數式return {name: 'Tom'}}})//第二步:全局注冊組件Vue.component('hello', hello)//創建vmnew Vue({el: '#root',data: {msg: '你好啊!'}})new Vue({el: '#root2',})
</script></html>

在這里插入圖片描述

1.2、幾個注意點

<!DOCTYPE html>
<html><head><meta charset="UTF-8" /><title>幾個注意點</title><script type="text/javascript" src="../js/vue.js"></script></head><body><!-- 幾個注意點:1.關于組件名:一個單詞組成:第一種寫法(首字母小寫):school第二種寫法(首字母大寫):School多個單詞組成:第一種寫法(kebab-case命名):my-school第二種寫法(CamelCase命名):MySchool (需要Vue腳手架支持)備注:(1).組件名盡可能回避HTML中已有的元素名稱,例如:h2、H2都不行。(2).可以使用name配置項指定組件在開發者工具中呈現的名字。2.關于組件標簽:第一種寫法:<school></school>第二種寫法:<school/>備注:不用使用腳手架時,<school/>會導致后續組件不能渲染。3.一個簡寫方式:const school = Vue.extend(options) 可簡寫為:const school = options--><!-- 準備好一個容器--><div id="root"><h1>{{msg}}</h1><school></school></div></body><script type="text/javascript">Vue.config.productionTip = false//定義組件const s = Vue.extend({name:'atguigu',template:`<div><h2>學校名稱:{{name}}</h2>	<h2>學校地址:{{address}}</h2>	</div>`,data(){return {name:'DGUT',address:'北京'}}})new Vue({el:'#root',data:{msg:'歡迎學習Vue!'},components:{school:s}})</script>
</html>

1.3、VueComponent的構造函數

<!DOCTYPE html>
<html><head><meta charset="UTF-8" /><title>VueComponent</title><script type="text/javascript" src="../js/vue.js"></script></head><body><!-- 關于VueComponent:1.school組件本質是一個名為VueComponent的構造函數,且不是程序員定義的,是Vue.extend生成的。2.我們只需要寫<school/>或<school></school>,Vue解析時會幫我們創建school組件的實例對象,即Vue幫我們執行的:new VueComponent(options)。3.特別注意:每次調用Vue.extend,返回的都是一個全新的VueComponent!!!!4.關于this指向:(1).組件配置中:data函數、methods中的函數、watch中的函數、computed中的函數 它們的this均是【VueComponent實例對象】。(2).new Vue(options)配置中:data函數、methods中的函數、watch中的函數、computed中的函數 它們的this均是【Vue實例對象】。5.VueComponent的實例對象,以后簡稱vc(也可稱之為:組件實例對象)。Vue的實例對象,以后簡稱vm。--><!-- 準備好一個容器--><div id="root"><school></school><hello></hello></div></body><script type="text/javascript">Vue.config.productionTip = false//定義school組件const school = Vue.extend({name:'school',template:`<div><h2>學校名稱:{{name}}</h2>	<h2>學校地址:{{address}}</h2>	<button @click="showName">點我提示學校名</button></div>`,data(){return {name:'尚硅谷',address:'北京'}},methods: {showName(){console.log('showName',this)}},})const test = Vue.extend({template:`<span>atguigu</span>`})//定義hello組件const hello = Vue.extend({template:`<div><h2>{{msg}}</h2><test></test>	</div>`,data(){return {msg:'你好啊!'}},components:{test}})// console.log('@',school)// console.log('#',hello)//創建vmconst vm = new Vue({el:'#root',components:{school,hello}})</script>
</html>

在這里插入圖片描述

二、單文件組件

2.1、前置知識

分別暴露
在這里插入圖片描述
統一暴露
在這里插入圖片描述
默認暴露
在這里插入圖片描述
在這里插入圖片描述

2.2、組件

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

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

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

相關文章

設計模式—里氏替換原則

1.概念 里氏代換原則(Liskov Substitution Principle LSP)面向對象設計的基本原則之一。 里氏代換原則中說&#xff0c;任何基類可以出現的地方&#xff0c;子類一定可以出現。 LSP是繼承復用的基石&#xff0c;只有當衍生類可以替換掉基類&#xff0c;軟件單位的功能不受到影…

Spring注解方式整合第三方框架

目錄 Spring整合MyBatis 原有xml方式整合配置如下 注解方式&#xff1a; Import可以導入如下三種類 第三方框架是指由其他開發者或團隊開發的軟件模塊或庫&#xff0c;供開發者在自己的應用程序中使用。這些框架通常提供了一系列已經封裝好的功能或工具&#xff0c;可節省開…

使用flask返回json格式的數據

Flask Flask是一個使用Python編寫的輕量級Web框架&#xff0c;它的設計理念是保持簡單、靈活和易擴展。它的核心是Werkzeug和Jinja2&#xff0c;并且它本身只提供了非常基礎的Web框架功能&#xff0c;例如路由和請求處理等。 使用Flask可以快速創建一個Web應用程序&#xff0c;…

跳躍游戲Ⅱ[中等]

優質博文&#xff1a;IT-BLOG-CN 一、題目 給定一個長度為n的0索引整數數組nums。初始位置為nums[0]。每個元素nums[i]表示從索引i向前跳轉的最大長度。換句話說&#xff0c;如果你在nums[i]處&#xff0c;你可以跳轉到任意nums[i j]處: 0 < j < nums[i] i j < n …

【Python 訓練營】N_8 打印阿姆斯特朗數

題目 輸入一個數&#xff0c;判斷是否為阿姆斯特朗數&#xff0c;阿姆斯特朗數指一個n位正整數等于其各位數字的n次方之和。其中n為3時是水仙花數。 分析 利用循環&#xff0c;獲取數的長度&#xff0c;根據長度和定義&#xff0c;拆分出來運算 答案 while True:n int(in…

【Python 訓練營】N_7 打印水仙花數

題目 打印出1000以內所有的"水仙花數"&#xff0c;所謂"水仙花數"是指一個三位數&#xff0c;其各位數字立方和等于該數本身。例如&#xff1a;153是一個"水仙花數"&#xff0c;因為1531的三次方&#xff0b;5的三次方&#xff0b;3的三次方。 …

數學啟發式

學習資料&#xff1a; 優化求解器 | Gurobi 數學啟發式算法&#xff1a;參數類型與案例實現 數學啟發式算法 | 可行性泵 (Feasibility Pump)算法精講&#xff1a;一份讓您滿意的【理論介紹編程實現數值實驗】學習筆記(PythonGurobi實現) 大佬到底是大佬&#xff01;這些資料太…

Mac Ubuntu雙系統解決WiFi和WiFi 5G網絡不可用問題

文章目錄 設備信息1. Ubuntu WiFi不可用解決方式查看Mac的網卡型號根據網卡型號搜索獲取到的解決方法查看WiFi名字問題參考鏈接 2. 解決WiFi重啟后失效問題打開終端創建.sh腳本文件編輯腳本文件復制粘貼腳本修改腳本權限創建并編輯systemd service文件復制粘貼下文到systemd se…

Typescript怎樣對URL參數進行編碼?

URL中的參數需要進行編碼&#xff08;URL encoding&#xff09;是為了確保傳輸的參數不包含特殊字符&#xff0c;同時確保數據的可靠性和安全性。 特殊字符如空格、&、?等在URL中有特殊含義&#xff0c;如果直接包含在參數值中&#xff0c;可能會導致解析錯誤或者安全問題…

只考數據結構,計算機評級C+,成都信息工程大學考情分析

成都信息工程大學(C) 考研難度&#xff08;☆☆&#xff09; 內容&#xff1a;23考情概況&#xff08;擬錄取和復試分析&#xff09;、院校概況、24專業目錄、23復試詳情、各專業考情分析、各科目考情分析。 正文1715字&#xff0c;預計閱讀&#xff1a;3分鐘 2023考情概況 …

Java實現求最大值

1 問題 接收用戶輸入的3個整數&#xff0c;如何將最大值作為結果輸出。 2 方法 采用“截圖文字代碼”的方式描述。 引入輸入包調用main()函數&#xff0c;提示并接收用戶輸入的3個整數&#xff0c;并交由變量a b c來保存。對接收的3個數據進行比較&#xff0c;先比較a和b&#…

原型 原型對象 原型鏈

在面向開發對象開發過程中對每一個實例添加方法&#xff0c;會使每一個對象都存在該添加方法造成空間浪費 通過對原型添加公共的屬性或方法&#xff0c;使所有實例對象都可訪問 原型為了共享公共的成員 prototype 原型: JS為每個構造函數提供一個屬性prototype(原型),它的值…

PostgreSQL數據庫初接觸

PostgreSQL默認端口為5432 windows下服務名為PostgreSQL-x64-10 10為版本 進程名為pg-ctl.exe 備份數據庫命令&#xff1a; pg_dump -h localhost -p 5432 -U postgres -f d:\20231124.dmp tcsl7//tcsl7為數據庫名 開始用-d 指定數據庫&#xff0c;后來提示沒-d參數 還…

在服務器復用他人的anaconda3(免安裝)

在服務器復用他人的anaconda3 1. 復制他人的anaconda3文件夾2. 修改配置文件3. 修改環境路徑和包路徑 1. 復制他人的anaconda3文件夾 cp -r /home/xxx/anaconda3 /home/your_username2. 修改配置文件 vim anaconda3/etc/profile.d/conda.sh # 替換原來的用戶名為自己的用戶名…

SELinux零知識學習二十八、SELinux策略語言之類型強制(13)

接前一篇文章:SELinux零知識學習二十七、SELinux策略語言之類型強制(12) 二、SELinux策略語言之類型強制 4. 類型規則 類型規則在創建客體或在運行過程中重新標記時指定其默認類型。在策略語言中定義了兩個類型規則: type_transtition在域轉換過程中標記行為發生時以及創…

jQuery 3.0 新增了哪些特性?(jQuery 3 所引入的那些最重要的變化)

文章目錄 前言簡介新增特性Use of requestAnimationFrame() for Animationsunwrap() 方法 有變更的特性data() 方法Deferred 對象SVG 文檔 已廢棄、已移除的方法和屬性廢棄 bind()、unbind()、delegate() 和 undelegate() 方法移除 load()、unload() 和 error() 方法移除 conte…

計算機應用基礎_錯題集_OutLook操作題_操作系統應用題_電子表格---網絡教育統考工作筆記005

6、(說明:考生單擊窗口下方的“打開[Outlook]應用程序”啟動Outlook) 按以下要求保存草稿。 收件人:test_xiao_ming@163.com

深眸科技聚焦AI機器視覺檢測,驅動3C電子行業集成創新實現新需求

隨著消費的升級及國家政策的助推&#xff0c;國內3C電子市場不斷擴大&#xff0c;行業實現高速發展。近年來&#xff0c;3C電子產品持續迭代&#xff0c;生產工藝也逐漸復雜化&#xff0c;相關生產線定位組裝、零部件檢測、整機產品檢測等環節&#xff0c;亟需使用具備較強適應…

C語言-字符串逆序

輸入一個字符串&#xff0c;對該字符串進行逆序&#xff0c;輸出逆序后的字符串。 輸入格式&#xff1a; 輸入在一行中給出一個不超過80個字符長度的、以回車結束的非空字符串。 輸出格式&#xff1a; 在一行中輸出逆序后的字符串。 輸入樣例&#xff1a; Hello World…

云原生系列Go語言篇-編寫測試Part 2

基準測試 確定代碼是快或慢非常復雜。我們不用自己計算&#xff0c;應使用Go測試框架內置的基準測試。下面來看??第15章的GitHub代碼庫??sample_code/bench目錄下的函數&#xff1a; func FileLen(f string, bufsize int) (int, error) {file, err : os.Open(f)if err ! …