国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Vue前端框架10 組件的組成、組件嵌套關(guān)系、組件的注冊方式、組件傳遞數(shù)據(jù)(props $emit)、數(shù)組傳遞多種數(shù)據(jù)類型、組件傳遞props校驗、組件事件

這篇具有很好參考價值的文章主要介紹了Vue前端框架10 組件的組成、組件嵌套關(guān)系、組件的注冊方式、組件傳遞數(shù)據(jù)(props $emit)、數(shù)組傳遞多種數(shù)據(jù)類型、組件傳遞props校驗、組件事件。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

一、組件組成

組件最大的優(yōu)勢就是可復(fù)用性
通常將組件定義在.vue中,也就是SFC單文件組件
組件的基本組成:

<template>
  <h3>基礎(chǔ)標(biāo)簽</h3>
</template>

<script>
export default {
  name: "MyComponent"
}
</script>

<!-- scoped 讓當(dāng)前樣式只在當(dāng)前組件中生效-->
<style scoped>

</style>
<template>
<!--  第三步 顯示組件-->
  <MyComponent/>
<!--  這樣寫法也可以-->
  <my-component></my-component>
</template>

<script>
//第一步 引入組件
import MyComponent from './components/MyComponent.vue'

export default {

  name: 'App',
  //第二步 注入組件
  components: {
    MyComponent
  }
}
</script>

<style>
#app {
  font-family: Avenir, Helvetica, Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-align: center;
  color: #2c3e50;
  margin-top: 60px;
}
</style>

二、組件嵌套關(guān)系

組件允許我們將UI劃分為獨立的、可重用的部分,并且對每個部分單獨思考
實際應(yīng)用中組件常常被組件成層層嵌套的樹狀結(jié)構(gòu)

三、組件的注冊方式

Vue組件使用前要注冊,注冊有兩種方式:全局注冊和局部注冊
全局注冊在main.js中注冊

import { createApp } from 'vue'
import App from './App.vue'
import MyComponent from "@/components/MyComponent";

const app=createApp(App)
/**
 * 在這中間寫app的組件注冊
 * 全局注冊的問題:
 * 1、組件不管是否使用 都要打包在JS中
 * 2、全局在大型項目中使得項目依賴不明確,父組件中使用子組件時,不太容易定位子組件的實現(xiàn),影響長期的可維護性
 */

app.component("MyComponent",MyComponent)

app.mount('#app')

局部注冊按照之前的來就好了

四、組件傳遞數(shù)據(jù)(通過props)

組件之間不是完全獨立的,而是有交集的,組件與組件之間可以傳遞數(shù)據(jù)
傳遞數(shù)據(jù)的解決方案就是props

<template>
  <h3>{{title}}</h3>
  <h3>{{demo}}</h3>
<!--  動態(tài)傳-->
  <h3>{{message}}</h3>
<!--  注意事項 props傳遞數(shù)據(jù) 只能從父傳給子 不能方向傳-->
</template>

<script>
export default {
  name: "sonDemo",
  props:["title","demo","message"]
}
</script>

<style scoped>

</style>
<template>
  <Son title="Parent數(shù)據(jù)" demo="測試" :message="message"/>
</template>

<script>
import Son from "@/components/sonDemo";
export default {
  name: "parentDemo",
  components: {Son},
  data(){
    return{
      message:"hello"
    }
  }
}
</script>

<style scoped>

</style>

五、組件傳遞多種數(shù)據(jù)類型

props不僅僅可以傳字符串 還可以傳其他類型 例如數(shù)字、對象、數(shù)組
任何類型都可以用props傳

<template>
<!--  在這里傳值 可以靜態(tài)傳值 也可以動態(tài)傳值-->
  <Son title="Parent數(shù)據(jù)" demo="測試" :message="message" :age="age" :names="names" :user="user"/>
</template>

<script>
import Son from "@/components/sonDemo";
export default {
  name: "parentDemo",
  components: {Son},
  data(){
    return{
      message:"hello",
      age:18,
      names:["zhansgan","lisi"],
      user:{
        name:"hello",
        age:20
      }
    }
  }
}
</script>

<style scoped>

</style>
<template>
  <h3>{{title}}</h3>
  <h3>{{demo}}</h3>
<!--  動態(tài)傳-->
  <h3>{{message}}</h3>

  <button @click="clickAgain">click</button>
<!--  注意事項 props傳遞數(shù)據(jù) 只能從父傳給子 不能方向傳-->
</template>

<script>
export default {
  name: "sonDemo",
  //接受傳到的值
  props:["title","demo","message","names","age","user"],
  methods:{
    clickAgain(){
      console.log(this.names)
      console.log(this.user)
    }
  }
}
</script>

<style scoped>

</style>

六、組件傳遞props校驗

<template>
<!--  在這里傳值 可以靜態(tài)傳值 也可以動態(tài)傳值-->
  <Son title="Parent數(shù)據(jù)" demo="測試" :message="message" :age="age" :names="names" :user="user"/>
</template>

<script>
import Son from "@/components/sonDemo";
export default {
  name: "parentDemo",
  components: {Son},
  data(){
    return{
      message:"hello",
      age:18,
      names:["zhansgan","lisi"],
      user:{
        name:"hello",
        age:20
      }
    }
  }
}
</script>

<style scoped>

</style>
<template>
  <h3>{{title}}</h3>
  <h3>{{demo}}</h3>
<!--  動態(tài)傳-->
  <h3>{{message}}</h3>
  <h3>{{age}}</h3>

  <p v-for="(item,index) of names" v-bind:key="index">{{item}}</p>

  <button @click="clickAgain">click</button>
<!--  注意事項 props傳遞數(shù)據(jù) 只能從父傳給子 不能方向傳-->
<!--  注意:prop是已讀的 不可以修改-->
</template>

<script>

export default {
  name: "sonDemo",
  //接受傳到的值
  props: {
    title:{
      type:String,
      //設(shè)置這是必選項
      required:true
    },
    names:{
      type:[String,Number,Array,Object],
      //如果傳的是個數(shù)組類型或?qū)ο箢愋?則需要通過工廠函數(shù)返回默認(rèn)值
      default(){
        return ["1",'2']
      }
    },
    age:{
      type:Number,
      //可以設(shè)置默認(rèn)值
      //數(shù)字和字符串可以直接default 如果傳的是個數(shù)組類型或?qū)ο箢愋?則需要通過工廠函數(shù)返回默認(rèn)值
      default:0
    },
    user:{},
    demo:{},
    message:{}
  },
  methods:{
    clickAgain(){
      console.log(this.names)
      console.log(this.user)
    }
  }
}
</script>

<style scoped>

</style>

七、組件事件

組件的模板表達(dá)式中,可以直接用$emit方法觸發(fā)自定義事件
觸發(fā)自定義的目的是組件之間傳遞數(shù)據(jù)文章來源地址http://www.zghlxwxcb.cn/news/detail-709554.html

<template>
  <h3>組件事件</h3>
  <son-demo @someEvent="getHandle"></son-demo>
  <p>{{message}}</p>
</template>

<script>
import SonDemo from "@/components/sonDemo";
export default {
  name: "parentDemo",
  components: {SonDemo},
  methods:{
    getHandle(data){
      console.log("觸發(fā)了",data)
      this.message=data
    }
  },
  data(){
    return{
      message:""
    }
  }
}
</script>

<style scoped>

</style>
<template>
    <h3>Child</h3>
    <button @click="clickEventHandle">傳遞數(shù)據(jù)</button>
</template>
<!--組件之間傳遞數(shù)據(jù)的方案
  1、父傳子  props
  2、子傳父  自定義事件$emit
-->
<script>
export default {
  name: "sonDemo",
  methods:{
    clickEventHandle(){
      console.log("準(zhǔn)備觸發(fā)")
      //自定義事件 還可以傳參
      this.$emit("someEvent",this.message)
    }
  },
  data(){
    return{
      message:"child數(shù)據(jù)123"
    }
  }
}
</script>

<style scoped>

</style>

到了這里,關(guān)于Vue前端框架10 組件的組成、組件嵌套關(guān)系、組件的注冊方式、組件傳遞數(shù)據(jù)(props $emit)、數(shù)組傳遞多種數(shù)據(jù)類型、組件傳遞props校驗、組件事件的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • vue - 動態(tài)綁定ref(使用變量)以及獲取方式,解決v-for循環(huán)嵌套自定義子組件時無法this.$refs.xx找到動態(tài)組件的情況(詳細(xì)示例教程)適合 vue.js nuxt.js uniapp

    正常情況,我們需要在vue中獲得某個dom或者組件,我們會通過綁定 ref 然后通過綁定后的名字來獲取這個dom 。 但是,如果我們在v-for中綁定ref的話,那么這個ref就會存在多個,比如我們點擊事件讓對應(yīng)的顯示/隱藏的話,我們很難找到這個對應(yīng)的元素。 那么,這時我們需要動

    2024年02月13日
    瀏覽(27)
  • vue(32) : win10創(chuàng)建vue2基礎(chǔ)前端框架

    vue(32) : win10創(chuàng)建vue2基礎(chǔ)前端框架

    vue2 element-ui axios 含接口調(diào)用示例 開發(fā)工具為HBuilderX 3.7.3 等待創(chuàng)建項目 代理后端配置如下, 三個test改成相同的uri前綴即可, uri該簽注會代理到后端 proxy: { ? ? ? // 代理test開頭的uri ? ? ? \\\'/test\\\': { ? ? ? ? target: \\\'http://192.168.1.1:8080\\\', // 后端地址 ? ? ? ? changeOrigin: true, // 開啟代

    2024年02月06日
    瀏覽(26)
  • Vue + Element UI 前端篇(十五):嵌套外部網(wǎng)頁

    Vue + Element UI 前端篇(十五):嵌套外部網(wǎng)頁

    在有些時候,我們需要在我們的內(nèi)容欄主區(qū)域顯示外部網(wǎng)頁。如查看服務(wù)端提供的SQL監(jiān)控頁面,接口文檔頁面等。 這個時候就要求我們的導(dǎo)航菜單能夠解析嵌套網(wǎng)頁的URL,并根據(jù)URL路由到相應(yīng)的嵌套組件。接下來我們就講解具體實現(xiàn)方案。 實現(xiàn)原理 1. 給菜單URL添加嵌套網(wǎng)頁

    2024年02月08日
    瀏覽(30)
  • UIOTOS前端零代碼 第7節(jié):(實踐)利用嵌套+收發(fā)器組件,零代碼實現(xiàn)簡單計算器功能

    UIOTOS前端零代碼 第7節(jié):(實踐)利用嵌套+收發(fā)器組件,零代碼實現(xiàn)簡單計算器功能

    通過嵌套容器嵌套底層頁面,再利用收發(fā)器組件和工具函數(shù)之間的轉(zhuǎn)換,真正做到零代碼實現(xiàn)簡單計算器功能。 底層頁面 ? ? ? ? ? ? 步驟1: 打開編輯器,在右邊頁面中,選擇合適的頁面路徑 新建頁面 。 步驟2: 把當(dāng)前頁面命名“按鈕”,并縮放至合適的大小,在右邊屬

    2024年04月14日
    瀏覽(33)
  • 【一、bootstrap框架前端注冊登錄頁面】

    【一、bootstrap框架前端注冊登錄頁面】

    一、使用bootstrap框架寫一個簡易的前端登錄頁面。 先上截圖 下面開始記錄本人使用bootstrap框架寫這個登錄頁面的過程 1、bootstrap需要的配置文件 ?2、如何修改背景圖片 3、如何寫一個圖標(biāo)與輸入框附合的表單 例如這樣?

    2024年02月11日
    瀏覽(27)
  • Vue中使用Element UI的Table組件實現(xiàn)嵌套表格(最簡單示例)

    Vue中使用Element UI的Table組件實現(xiàn)嵌套表格(最簡單示例)

    以下是一個簡單的示例代碼,演示如何在Vue中使用Element UI的Table組件實現(xiàn)嵌套表格: 上面的代碼通過type=\\\"expand\\\"設(shè)置了一個展開按鈕,點擊該按鈕會顯示與當(dāng)前行關(guān)聯(lián)的子表格內(nèi)容。 在上面的示例中,我們定義了一個包含姓名和年齡的主表格,以及一個展開列用于顯示與每行

    2024年02月02日
    瀏覽(41)
  • vue3深入組件: 組件注冊

    一個 Vue 組件在使用前需要先被“注冊”,這樣 Vue 才能在渲染模板時找到其對應(yīng)的實現(xiàn)。組件注冊有兩種方式:全局注冊和局部注冊。 全局注冊 我們可以使用 Vue 應(yīng)用實例的 .component() 方法,讓組件在當(dāng)前 Vue 應(yīng)用中全局可用。 全局注冊的問題: 全局注冊,但并沒有被使用

    2024年01月18日
    瀏覽(15)
  • Vue全局組件和局部組件的注冊

    Vue全局組件和局部組件的注冊

    ? 組件的簡介 : 組件系統(tǒng)是Vue.js其中一個重要的概念,它提供了一種抽象,讓我們可以使用獨立可復(fù)用的小組件來構(gòu)建大型應(yīng)用,任意類型的應(yīng)用界面都可以抽象為一個組件樹: 組件的基本使用: 創(chuàng)建一個Vue實例需要創(chuàng)建后才能使用,組件也需要進行注冊后才能使用。注冊

    2023年04月23日
    瀏覽(35)
  • VUE工程化--vue組件注冊

    VUE工程化--vue組件注冊

    組件注冊的兩種方式: 1. 局部注冊:只能在注冊的組件內(nèi)使用 2. 全局注冊:所有組件內(nèi)都能使用 ? 局部注冊步驟: ? ? ? ? 1、導(dǎo)入 ? ? ? ? 2、注冊組件--注冊成html標(biāo)簽(components中) ? ? ? ? 3、頁面中使用標(biāo)簽 實現(xiàn)效果: ? 全局注冊步驟( main.js ): ? ? ? ? 1、導(dǎo)入

    2024年01月18日
    瀏覽(31)
  • 前端框架Layui的使用講解(Layui搭建登錄注冊頁面)

    前端框架Layui的使用講解(Layui搭建登錄注冊頁面)

    目錄 一、前言 1.什么是Layui 2.Layui的背景 3.為什么要使用Layui 4.Layui的模塊化 二、Layui使用講解 1.初識Layui 2.搭建登錄頁面 靜態(tài)效果圖? 封裝引入文件頁面(公用頁面) jsp頁面搭建 userDao編寫 Servlet頁面編寫 xml文件配置 3.搭建注冊頁面 靜態(tài)效果圖 jsp頁面搭建 Servlet頁面編寫 最

    2024年02月15日
    瀏覽(20)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包