国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

vue 開發一個按鈕組件的示例代碼

2024-05-06 15:20:21
字體:
來源:轉載
供稿:網友

最近面試,被問到一個題目,vue做一個按鈕組件;

當時只是說了一下思路,回來就附上代碼。

解決思路:

    通過父子組件通訊($refs 和 props) props接受參數, $refs調用子組件的方法 來達到點擊提交改變按鈕狀態,如果不成功則取消按鈕狀態

在src/components/ 下建一個button.vue

<template><!-- use plane --><!-- 傳入bgColor改變按鈕背景色 --><!-- state切換button的狀態 調用cancel()可以切換 --><!-- text為按鈕文字 --> <div class="container">  <button    @click="confirm"   :disabled="state"    class="confirm"    :style="{background: btnData.bgColor}"  >{{text}}</button> </div></template><script>export default { data(){  return {   text: this.btnData.text,   state: false,  } }, props: {  btnData: {   types: Array,   default() {    return {     text: '確認',    }   }  } }, methods: {  confirm(){   this.text += '...'   this.state = true   //這里是激活父組件的事件,因為子組件是不會冒泡到父組件上的,必須手動調用$emit   //相對應父組件要在調用該組件的時候,將其掛載到上面   this.$emit("confirm")  },  cancel(){   this.text = this.btnData.text   this.state = false  } }}</script><style lang="less" scoped>.confirm { border: none; color: #fff; width: 100%; padding: 1rem 0; border-radius: 4px; font-size: 1.6rem; background: #5da1fd; &:focus {  outline: none; }}</style>

在頁面中調用:

<template>  <div class="btn-box">   <Btn     :btnData="{text: '確認注冊'}"    <!--這里就要掛載$emit調用的事件 @confirm="想要調用事件的名字"-->    @confirm="confirm"    ref="btn"   ></Btn>  </div> </template><script>import Btn from '@/components/button'export default { components: {  Btn }, methods: {  confirm(){   if(!this.companyName){    this.$toast("公司名不能為空")     this.$refs.btn.cancel()   } }}</script>

在這里,要注意一些細節:

1. button組件形成之后和其它div元素的間距,如果是在組件內定死是很難復用的。

2. 在復用的時候,在父組件中是改變不了子組件的樣式的,如果要強制更改,單獨寫一個并去掉scoped。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持錯新站長站。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 长垣县| 五莲县| 开化县| 车致| 科技| 仪征市| 安顺市| 健康| 钟祥市| 西昌市| 靖西县| 禄丰县| 黔西县| 简阳市| 金华市| 布尔津县| 伊宁县| 滕州市| 乌什县| 涟水县| 安塞县| 桃园市| 铁岭县| 重庆市| 延吉市| 济南市| 吴旗县| 贡嘎县| 醴陵市| 德保县| 瑞金市| 罗源县| 尼勒克县| 兴业县| 泰州市| 大新县| 融水| 林芝县| 双柏县| 南召县| 祁阳县|