فهرست سرفصل‌های 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 — $root ($root)

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

$root ($root)

«آبجکت $root» در Vue یعنی «نمونه ریشه برنامه». هر کامپوننت فرزند می تواند مستقیم به آن برسد. سپس می تواند داده و متد ریشه را بخواند یا تنظیم کند. مثل مدیر مدرسه که همه کلاس ها به او دسترسی دارند.

تعریف و کاربرد آبجکت $root

آبجکت $root نماینده کامپوننت ریشه کل اپ است. اگر در خود ریشه استفاده شود، همان نمونه خودش است. از هر عمقی می توان با this.$root متد صدا زد یا مقدار داده را عوض کرد. اما برای نگه داری بهتر، ارتباطات را با props/emit یا provide/inject انجام بده.

نکته: اگر فقط انتقال داده می خواهی، از $props کمک بگیر. اگر سلسله مراتبی نیاز داری، به $parent نگاه کن. همچنین این صفحه خودمان: آبجکت $root.

نمونه 1: تغییر متن ریشه از یک فرزند

در فرزند روی دکمه بزن. متن متغیر ریشه به «Hello!» تغییر می کند. این کار مستقیم است؛ اما بااحتیاط استفاده کن.

<template>
  <div>
    <h3>Change Text</h3>
    <p>Click the button to toggle the text in the PRE tag of the root component.</p>
    <button @click="changeRootText">Change text in root</button>
  </div>
</template>

<script>
export default {
  methods: {
    changeRootText() {
      this.$root.text = 'Hello!';
    }
  }
};
<\/script>

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

نمونه 2: تغییر رنگ یک تگ در ریشه از نوه

اینجا کامپوننت «نوه» رنگ یک تگ در ریشه را عوض می کند. یعنی چند سطح بالاتر هدف گرفته می شود.

<template>
  <div>
    <h4>Grand Child Component</h4>
    <p>Click the button to toggle the color of the P tag in the root component.</p>
    <button @click="changeRootColor">Change color in root</button>
  </div>
</template>

<script>
export default {
  methods: {
    changeRootColor() {
      this.$root.color = 'lightgreen';
    }
  }
};
<\/script>

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

هشدار کوچک

هشدار: زیاده روی در $root کد را شکننده می کند. بنابراین اولویت با props/emit و provide/inject است. سپس در موارد خاص سراغ $root برو.

جمع بندی سریع

  • $root نمونه ریشه اپ است.
  • از هر عمقی به آن می رسی.
  • برای نگه داری، props/emit بهتر است.
  • فقط در موارد خاص از $root استفاده کن.