搜尋

首頁  >  問答  >  主體

使用VueJS的ComboBox模板元件

<p>我想用<code>vuejs v3</code>製作一個組合框組件模板,因此我有以下程式碼:</p>
<模板>
    <選擇名稱={{selector_name}} 類別=“組合框” id={{selector_id}}>
        v-for=在 {{selector_options}} 中選擇
        <選項值=opt>
            選擇
        </選項>
    </選擇>
</範本>

<腳本>
導出預設值{
    名稱:'組合框',
    數據() {
        返回 {
            選擇器名稱:空,
            選擇器_id:空,
            選擇器選項:空,
        }
    },
    道具: {
        選擇器名稱:{
            類型:字串,
            必填:真實
        },
        選擇器 ID:{
            類型:字串,
            預設值:“組合框”
        },
        選擇器選項:{
            類型:數組,
            必填:真實
        }
    },
    方法: {
        onChange: (事件) => {
            console.log(event.target.value);
        },
    },
    計算:{},
}
</腳本>
</前>
<p>但我用<code>v-for</code>的方式對我來說似乎不正確,你能告訴我如何修正嗎?提前致謝。</p>
P粉550323338P粉550323338481 天前488

全部回覆(1)我來回復

  • P粉616111038

    P粉6161110382023-09-04 16:19:58

    我看到很多東西,為了清楚回答你的問題,v-for是用在元素上的。

    <template>
        // For mor readability i recommend you do bind your property:
        //  - name={{selector_name}} become :name="selector_name"
        <select :name="selector_name" class= "combobox" :id="selector_id">
            <!-- v-for is required with a unique key, you can take the index and use it -->
            <option v-for="(opt, index) in selector_options" :key="`opt ${index}`" value=opt>
               {{ opt }}
            </option>
        </select>
    </template>
    

    您不能定義同名的 props 和 data。 Props,在資料中註入屬性和值。 完全相同,但資料來自父級,您可以在父級中將值傳遞給子級。

    因此,如果您需要傳遞數據,請使用 props,但不要在數據內部定義它。

    有一個工作範例所有這些(我使用資料而不是道具來提高可讀性)。 < /p>

    回覆
    0
  • 取消回覆