Vue 腳手架基礎特性

一、ref屬性

? ? ? ? 1.被用來給元素或子組件注冊引用信息(id的替代者)

? ? ? ? 2.應用在html標簽上獲取的是真實DOM元素,用在組件標簽上是組件實例對象

? ? ? ? 3.使用方式:

? ? ? ? ? ? ? ? (1).打標識:<h1 ref="xxx">...</h1> 或 <School ref="xxx" />

? ? ? ? ? ? ? ? (2).獲取:this.$refs.xxx

<template><div><h2 v-text="msg" ref="text"></h2><button @click="showDOM" ref="btn">點擊獲取DOM元素</button><School ref="sch"/></div>
</template><script>import School from './Components/School'export default {name:'App',components:{School},data() {return {msg:'歡迎學習CLI!!!'}},methods: {showDOM(){console.log(this.$refs.text) //真實DOM元素console.log(this.$refs.btn) //真實DOM元素console.log(this.$refs.sch) //School組件的實例對象}},}
</script>

二、props配置

? ? ? ? 功能:讓組件接收外部傳過來的數據

? ? ? ? ? ? ? ? (1).傳遞數據:

? ? ? ? ? ? ? ? ? ? ? ? <Demo name="xxx">

? ? ? ? ? ? ? ? (2).接收數據:

? ? ? ? ? ? ? ? ? ? ? ? 第一種方式(只接收):

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? props:['name']

? ? ? ? ? ? ? ? ? ? ? ? 第二種方式(限制類型):

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? props:{

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? name:String

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ? ? ? ? ? 第三種方式(限制類型、限制必要性、指定默認值):

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? props:{

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? name:{

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? type:String, //類型

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? required:true, //必要性

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? default:'張三' //默認值

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? }

? ? ? ? 備注:props是只讀的,Vue底層會監測你對props的修改,就會發出警告,若業務需求確實需要修改,那么請復制props的內容到data中一份,然后去修改data中的數據。

????????School.vue:

<template><div class="school"><h2>{{ msg }}</h2><h2>{{ name }}</h2><h2>{{ myAge+1 }}</h2><h2>{{ sex }}</h2><button @click="updateAge">點擊修改年齡</button></div>
</template><script>export default {name:'Student',data() {return {msg:'歡迎學習CLI!!!',myAge:this.age}},methods: {updateAge(){this.myAge++}},// 簡單聲明接收props:['name','age','sex']//接收的同時對數據進行類型限制// props:{//     name:String,//     sex:String,//     age:Number// }//接收的同時對數據進行類型限制+默認值的指定+必要性的限制// props:{//     name:{//         type:String,//         required:true//     },//     age:{//         type:Number,//         default:18//     },//     sex:{//         type:String,//         required:true//     }// }}
</script>

?????????App.vue:

<template><div><Student name="張三" :age="18" sex="男"/></div>
</template><script>import Student from './Components/Student'export default {name:'App',components:{Student},}
</script>

三、mixin配置

? ? ? ? 1.功能:可以把多個組件共用的配置提取成一個混入對象

? ? ? ? 2.使用方式:

? ? ? ? ? ? ? ? (1).定義混合:

? ? ? ? ? ? ? ? ? ? ? ? {

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? data(){...},

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? methods:{...},

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ...

????????????????????????}

? ? ? ? ? ? ? ? (2).使用混合:

? ? ? ? ? ? ? ? ? ? ? ? (1.全局混入:Vue.mixin(xxx)

? ? ? ? ? ? ? ? ? ? ? ? (2.局部混入:mixins:['xxx']

/* 定義mixin.js */
export const mixin = {methods: {showName(){alert(this.name)}},mounted() {console.log('你好啊!')},
}export const mixin2 = {data() {return {x:100,y:200}},
}  
/* 全局混入 */
//全局混入會在所有的Vue節點上混入
import Vue from "vue";
import App from "./App"
import {mixin,mixin2} from './mixin'Vue.mixin(mixin)
Vue.mixin(mixin2)Vue.config.productionTip = falsenew Vue({el:'#App',render: h => h(App)
})
/* 局部混入 */
<template><div><h2 @click="showName()">{{ name }}</h2><h2>{{ sex }}</h2></div>
</template><script>import {mixin,mixin2} from '../mixin'export default {name:'Student',data() {return {name:'張三',sex:'男',x:666 //若組件中已有定義變量,則優先使用組件中定義的變量}},//若組件中已經定義相同生命周期鉤子,則使用兩遍對應的生命周期鉤子mounted(){alert('你好啊!') },mixins:[mixin,mixin2]}
</script>

四、插件

? ? ? ? 1.功能:用于增強Vue

? ? ? ? 2.本質:包含install方法的一個對象,install的第一個參數是Vue,第二個以后的參數是插件使用者傳遞的參數。

? ? ? ? 3.定義插件:

? ? ? ? ? ? ? ? 對象.install = function (Vue,options) {

????????????????????????Vue.filter(......)?//添加全局過濾器

? ? ? ? ? ? ? ? ? ? ? ? Vue.directive(......) //添加全局指令

? ? ? ? ? ? ? ? ? ? ? ? Vue.mixin(......) //配置全局混入

? ? ? ? ? ? ? ? ? ? ? ? //添加實例方法

? ? ? ? ? ? ? ? ? ? ? ? Vue.prototype.$myMethod = function () {......}

????????????????????????Vue.prototype.$myProperty= xxx

? ? ? ? ? ? ? ? }

? ? ? ? 4.使用插件:Vue.use()

/* 定義plugins插件 */
export default {install(Vue){console.log("@@install",Vue)//過濾器Vue.filter('mySlice',function(value) {return value.slice(0,2)})//自定義指令Vue.directive('fbind',{bind(element,binding){element.value = binding.value},inserted(element,binding){element.focus()},updat(element,binding) {element.value = binding.value},})//mixinVue.mixin({data() {return {x:100}},})//在Vue原型上添加一個方法Vue.prototype.hello = () => (alert('你好呀!'))},
}
/* 在main.js中使用插件 */
import Vue from "vue";
import App from "./App"
import plugins from "./plugins";Vue.config.productionTip = falseVue.use(plugins)new Vue({el:'#App',render: h => h(App)
})
/* School.vue */
<template><div><h2>{{ name | mySlice }}</h2><h2>{{ address }}</h2><button @click="test">點擊我</button></div>
</template><script>export default {name:'School',data() {return {name:'清華大學',address:'北京'}},methods:{test(){this.hello()}}}
</script>/* Student.vue */
<template><div><h2>{{ name }}</h2><h2>{{ sex }}</h2><input type="text" v-fbind:value="name"></div>
</template><script>export default {name:'Student',data() {return {name:'張三',sex:'男',}},}
</script>

五、scoped樣式

? ? ? ? 1.作用:讓樣式在局部生效,防止沖突。

? ? ? ? 2.寫法:<style scoped>

? ? ? ? 當兩個組件的css樣式名相同時,后導入的組件會覆蓋掉先導入組件中相同樣式名的樣式,style中引入scoped樣式即可分割作用域。

/* School.vue */
<template><div class="demo"><h2>{{ name | mySlice }}</h2><h2>{{ address }}</h2></div>
</template><script>export default {name:'School',data() {return {name:'清華大學',address:'北京'}},}
</script><style scoped>.demo{background-color: orange;}
</style>/* Student */
<template><div class="demo"><h2 class="font-color">{{ name }}</h2><h2>{{ sex }}</h2></div>
</template><script>export default {name:'Student',data() {return {name:'張三',sex:'男',}},}
</script><style lang="less" scoped>.demo{background-color: skyblue;.font-color{color: orange;}}
</style>

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

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

相關文章

Ubuntu安裝k8s集群入門實踐-v1.31

準備3臺虛擬機 在自己電腦上使用virtualbox 開了3臺1核2G的Ubuntu虛擬機&#xff0c;你可以先安裝好一臺&#xff0c;安裝第一臺的時候配置臨時調高到2核4G&#xff0c;安裝速度會快很多&#xff0c;安裝完通過如下命令關閉桌面&#xff0c;能夠省內存占用&#xff0c;后面我們…

Word Press富文本控件的保存

新建富文本編輯器&#xff0c;并編寫save方法如下&#xff1a; edit方法&#xff1a; export default function Edit({ attributes, setAttributes }) {return (<><div { ...useBlockProps() }><RichTexttagNameponChange{ (value) > setAttributes({ noteCo…

【編程趣味游戲】:基于分支循環語句的猜數字、關機程序

&#x1f31f;菜鳥主頁&#xff1a;晨非辰的主頁 &#x1f440;學習專欄&#xff1a;《C語言學習》 &#x1f4aa;學習階段&#xff1a;C語言方向初學者 ?名言欣賞&#xff1a;"編程的核心是實踐&#xff0c;而非空談" 目錄 1. 游戲1--猜數字 1.1 rand函數 1.2 sr…

UE5 UI 控件切換器

文章目錄分類作用屬性分類 面板 作用 可以根據索引切換要顯示哪個子UI&#xff0c;可以擁有多個子物體&#xff0c;但是任何時間只能顯示一個 屬性 在這里指定要顯示的UI的索引

scikit-learn 包

文章目錄scikit-learn 包核心功能模塊案例其他用法**常用功能詳解****(1) 分類任務示例&#xff08;SVM&#xff09;****(2) 回歸任務示例&#xff08;線性回歸&#xff09;****(3) 聚類任務示例&#xff08;K-Means&#xff09;****(4) 特征工程&#xff08;PCA降維&#xff0…

Excel 將數據導入到SQLServer數據庫

一般系統上線前期都會導入期初數據&#xff0c;業務人員一般要求你提供一個Excel模板&#xff0c;業務人員根據要求整理數據。SQLServer管理工具是支持批量導入數據的&#xff0c;所以我們可以使用該工具導入期初。Excel格式 第一行為字段1、連接登入的數據庫并且選中你需要導入…

剪枝和N皇后在后端項目中的應用

剪枝算法&#xff08;Pruning Algorithm&#xff09; 生活比喻&#xff1a;就像修剪樹枝一樣&#xff0c;把那些明顯不會結果的枝條提前剪掉&#xff0c;節省養分。 在后端項目中的應用場景&#xff1a; 搜索優化&#xff1a;在商品搜索中&#xff0c;如果某個分類下沒有符合條…

cocos 2d游戲中多邊形碰撞器會觸發多次,怎么解決

子彈打到敵機 一發子彈擊中&#xff0c;碰撞回調多次執行 我碰撞組件原本是多邊形碰撞組件 PolygonCollider2D&#xff0c;我改成盒碰撞組件BoxCollider2D 就好了 用前端的節流方式。或者loading處理邏輯。我測試過了&#xff0c;是可以 本來就是多次啊,設計上貌似就是這樣的…

Kubernetes環境中GPU分配異常問題深度分析與解決方案

Kubernetes環境中GPU分配異常問題深度分析與解決方案 一、問題背景與核心矛盾 在基于Kubernetes的DeepStream應用部署中&#xff0c;GPU資源的獨占性分配是保障應用性能的關鍵。本文將圍繞一個典型的GPU分配異常問題展開分析&#xff1a;多個請求GPU的容器本應獨占各自的GPU&…

Django與模板

我叫補三補四&#xff0c;很高興見到大家&#xff0c;歡迎一起學習交流和進步今天來講一講視圖Django與模板文件工作流程模板引擎&#xff1a;主要參與模板渲染的系統。內容源&#xff1a;輸入的數據流。比較常見的有數據庫、XML文件和用戶請求這樣的網絡數據。模板&#xff1a…

日本上市IT企業|8月25日將在大連舉辦赴日it招聘會

株式會社GSD的核心戰略伙伴貝斯株式會社&#xff0c;將于2025年8月25日在大連香格里拉大酒店商務會議室隆重舉辦赴日技術人才專場招聘會。本次招聘會面向全國范圍內的優秀IT人才&#xff0c;旨在為貝斯株式會社東京本社長期發展招募優質的系統開發與管理人才。招聘計劃&#xf…

低功耗設計雙目協同畫面實現光學變焦內帶AI模型

低功耗設計延長續航&#xff0c;集成儲能模塊保障陰雨天氣下的鐵塔路線的安全一、智能感知與識別技術 多光譜融合監控結合可見光、紅外熱成像、激光補光等技術&#xff0c;實現全天候監測。例如&#xff0c;紅外熱成像可穿透雨霧監測山火隱患&#xff0c;激光補光技術則解決夜間…

datasophon下dolphinscheduler執行腳本出錯

執行hive腳本出錯&#xff1a; 錯誤消息&#xff1a; FAILED: RuntimeException Error loading hooks(hive.exec.post.hooks): java.lang.ClassNotFoundException: org.apache.atlas.hive.hook.HiveHookat java.net.URLClassLoader.findClass(URLClassLoader.java:387)at java.…

【Elasticsearch】安全地刪除快照倉庫、快照

《Elasticsearch 集群》系列&#xff0c;共包含以下文章&#xff1a; 1?? 冷熱集群架構2?? 合適的鍋炒合適的菜&#xff1a;性能與成本平衡原理公式解析3?? ILM&#xff08;Index Lifecycle Management&#xff09;策略詳解4?? Elasticsearch 跨機房部署5?? 快照與恢…

nodejs的npm

1. 什么是 npm&#xff1f; npm&#xff08;Node Package Manager&#xff09; 是 Node.js 的默認包管理工具&#xff0c;用于&#xff1a; 安裝和管理依賴&#xff08;第三方庫、框架等&#xff09;。運行項目腳本&#xff08;如啟動服務、測試、構建等&#xff09;。發布和共…

外網訪問內部私有局域網方案,解決運營商只分配內網IP不給公網IP問題

相信不少網友和我一樣&#xff0c;為了實現遠程控制、NAS訪問、組建私有云、攝像頭監控之類的需求&#xff0c;把光貓改成了橋接模式&#xff0c;并用自己的路由器撥號、進行端口了映射。本人之前一直用著沒啥問題&#xff0c;不過&#xff0c;最近突然出現了無法訪問的情況&am…

大模型——上下文工程 (Context Engineering) – 現代 AI 系統的架構基礎

上下文工程 (Context Engineering) – 現代 AI 系統的架構基礎 最近,AI大神 Andrej Karpathy 在YC的一個演講《Software in the era of AI 》帶火了一個新的概念 Context Engineering,上下文工程,LangChain也于7月2號在官網博客發表以《Context Engineering》為題目的文章(h…

PostgreSQL RelationBuildTupleDesc 分解

/** RelationBuildTupleDesc** Form the relations tuple descriptor from information in* the pg_attribute, pg_attrdef & pg_constraint system catalogs.*///從pg_attribute,pg_attrdef和pg_constraint 獲取字段信息以填充relation->rd_att static void //用到的…

在 Alpine Linux 中創建虛擬機時 Cgroup 掛在失敗的現象

現象&#xff1a;在 Alpine Linux 中部署 LXD或者incus 服務后&#xff0c;創建 容器或者虛擬機時提示 實例啟動失敗、退出代碼為1&#xff1a;查詢啟動日志后&#xff0c;發現是 cgroup 掛載失敗導致了 container 拉起失敗。原因分析&#xff1a;從啟動日志上看&#xff0c;是…

讓UV管理一切!!!

一、遇到的問題 自己在做AI開發的時候&#xff0c;先用的conda來管理虛擬環境&#xff0c;然后使用pip freeze > reqiurments來打包相關依賴。 優點&#xff0c;conda環境可以讓不同的項目有單獨的虛擬環境&#xff0c;不會干擾每個項目&#xff0c;還可以多個項目共享一個…