فهرست سرفصل‌های Vue
خانه (HOME) معرفی (Intro) دایرکتیوها (Directives) v-bind (v-bind) v-if (v-if) v-show (v-show) v-for (v-for) رویدادها (Events) v-on (v-on) متدها (Methods) تغییردهنده های رویداد (Event Modifiers) فرم ها (Forms) v-model (v-model) بایندینگ CSS (CSS Binding) ویژگی های محاسبه شده (Computed Properties) واچرها (Watchers) قالب ها (Templates) چرا، چگونه و راه اندازی (Why, How and Setup) اولین صفحه SFC (First SFC Page) کامپوننت ها (Components) پراپس (Props) کامپوننت های v-for (v-for Components) $emit() ($emit()) ویژگی های عبوری (Fallthrough) (Fallthrough Attributes) استایل Scoped (Scoped Styling) کامپوننت های محلی (Local Components) اسلات ها (Slots) v-slot (v-slot) اسلات های Scoped (Scoped Slots) کامپوننت های پویا (Dynamic Components) Teleport (Teleport) درخواست HTTP (HTTP Request) رفرنس های تمپلیت (Template Refs) هوک های چرخه عمر (Lifecycle Hooks) Provide/Inject (Provide/Inject) مسیریابی (Routing) ورودی های فرم (Form Inputs) انیمیشن ها (Animations) انیمیشن با v-for (Animations with v-for) بیلد (Build) Composition API (Composition API) ویژگی های توکار (Built-in Attributes) ویژگی 'is' ('is' Attribute) ویژگی 'key' ('key' Attribute) ویژگی 'ref' ('ref' Attribute) کامپوننت های توکار (Built-in Components) <KeepAlive> (<KeepAlive>) <Teleport> (<Teleport>) <Transition> (<Transition>) <TransitionGroup> (<TransitionGroup>) المان های توکار (Built-in Elements) <component> (<component>) <slot> (<slot>) <template> (<template>) نمونه کامپوننت (Component Instance) $attrs ($attrs) $data ($data) $el ($el) $parent ($parent) $props ($props) $refs ($refs) $root ($root) $slots ($slots) $emit() ($emit()) $forceUpdate() ($forceUpdate()) $nextTick() ($nextTick()) $watch() ($watch()) دایرکتیوها (Directives) v-bind (v-bind) v-cloak (v-cloak) v-for (v-for) v-html (v-html) v-if (v-if) v-else-if (v-else-if) v-else (v-else) v-memo (v-memo) v-model (v-model) v-on (v-on) v-once (v-once) v-pre (v-pre) v-show (v-show) v-slot (v-slot) v-text (v-text) گزینه های نمونه (Instance Options) داده ها (data) متدها (methods) محاسبه شده ها (computed) watch (watch) پراپس (props) emits (emits) expose (expose) هوک های چرخه عمر (Lifecycle Hooks) beforeCreate (beforeCreate) created (created) beforeMount (beforeMount) mounted (mounted) beforeUpdate (beforeUpdate) updated (updated) beforeUnmount (beforeUnmount) unmounted (unmounted) errorCaptured (errorCaptured) renderTracked (renderTracked) renderTriggered (renderTriggered) activated (activated) deactivated (deactivated) serverPrefetch (serverPrefetch) مثال ها (Examples) تمرین ها (Exercises) کوییز (Quiz) سیلابس (Syllabus) برنامه مطالعه (Study Plan) سرور (Server) گواهینامه (Certificate)
نتیجه‌ای برای جستجو یافت نشد.
Vue

Vue — ویژگی های عبوری (Fallthrough) (Fallthrough Attributes)

آخرین بروزرسانی: 1404/08/21

ویژگی های عبوری (Fallthrough) (Fallthrough Attributes)

«ویژگی های عبوری (Fallthrough Attributes)» یعنی صفت هایی که پراپس نیستند، اما مستقیم روی ریشه کامپوننت می نشینند. این کار مثل برچسبی است که از والد می آید و روی تگ اصلی می چسبد. بنابراین کد ساده تر می شود و کنترل از والد روشن تر است.

1) مفهوم ویژگی های عبوری

گاهی بهتر است استایل یا رویداد از والد تنظیم شود. بنابراین ویژگی هایی مثل class، style و v-on بدون تعریف پراپس، به ریشه کامپوننت می ریزند.

<template>
  <h3>Todo List</h3>
  <ul>
    <todo-item
      v-for="x in items"
      :key="x"
      :item-name="x"
    />
  </ul>
  <input v-model="newItem" />
  <button @click="addItem">Add</button>
</template>

<script>
export default {
  data() {
    return {
      newItem: "",
      items: ["Buy apples", "Make pizza", "Mow the lawn"]
    };
  },
  methods: {
    addItem() {
      this.items.push(this.newItem);
      this.newItem = "";
    }
  }
};
<\/script>

مشاهده در ادیتور

<template>
  <li>{{ itemName }}</li>
</template>

<script>
export default {
  props: [
    "itemName"
  ]
};
<\/script>

مشاهده در ادیتور

import { createApp } from "vue";
import App from "./App.vue";
import TodoItem from "./components/TodoItem.vue";

const app = createApp(App);
app.component("todo-item", TodoItem);
app.mount("#app");

مشاهده در ادیتور

2) اعمال استایل از والد با Fallthrough

می خواهیم پس زمینه آیتم ها را از والد تنظیم کنیم. ویژگی style روی ریشه کامپوننت می نشیند و نتیجه در DOM دیده می شود.

<template>
  <h3>Todo List</h3>
  <ul>
    <todo-item
      v-for="x in items"
      :key="x"
      :item-name="x"
      style="background-color: lightgreen;"
    />
  </ul>
  <input v-model="newItem" />
  <button @click="addItem">Add</button>
</template>

مشاهده در ادیتور

نکته: با «Inspect» می بینی style روی تگ <li> نشسته است.

3) ادغام class و style

اگر داخل کامپوننت هم style یا class باشد، با مقدار والد ادغام می شود. بنابراین هر دو اعمال می شوند.

<template>
  <li style="margin: 5px 0;">{{ itemName }}</li>
</template>

<script>
export default {
  props: [
    "itemName"
  ]
};
<\/script>

مشاهده در ادیتور

4) تعیین گیرنده با $attrs

اگر چند ریشه در قالب باشد، باید بگوییم کدام عنصر ویژگی ها را بگیرد. از $attrs روی همان عنصر استفاده می کنیم.

<template>
  <div class="pinkBall"></div>
  <li v-bind="$attrs">{{ itemName }}</li>
  <div class="pinkBall"></div>
</template>

مشاهده در ادیتور

هشدار: ویژگی های عبوری پراپس نیستند. پس در props آن ها را تعریف نکن.

نکته: برای رویدادها و پراپس، این صفحات را ببین: $emit در ویو و پراپس ویو. همچنین برای مرور، ویژگی های عبوری ویو را نشانه گذاری کن.

جمع بندی سریع

  • ویژگی های غیرپراپس روی ریشه می ریزند.
  • از والد، class و style را بده.
  • مقادیر class و style ادغام می شوند.
  • با $attrs عنصر گیرنده را مشخص کن.
  • پراپس را با Fallthrough قاطی نکن.