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

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

expose (expose)

«گزینه expose ویو» مشخص می کند کدام بخش های فرزند، برای والد باز باشد. یعنی مثل درِ آزمایشگاه که فقط ابزارهای مجاز بیرون باشند.

تعریف و کاربرد expose

گزینه expose لیست ویژگی ها یا متدهای قابل دسترسی از طریق template refs را تعیین می کند. اگر expose نباشد، پیش فرض همه چیز در دسترس والد است.

پس، با expose می توانی سطح دسترسی را محدود کنی. این کار ایمن تر و قابل پیش بینی تر است.

نمونه ساده: در دسترس گذاشتن یک متد

export default {
  expose: [
    'createMessage'
  ],
  data() {
    return {
      message: ''
    };
  },
  methods: {
    createMessage(msg) {
      this.message += msg + ' ';
    }
  }
};

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

کنترل دسترسی با expose

وقتی expose تعریف شود، فقط همان اقلام برای والد قابل دسترسی اند. بقیه پشت صحنه می مانند.

مثال: فقط داده message را بده بیرون

<template>
  <div>
    <h3>ChildComp.vue</h3>
    <p>Message from parent:</p>
    <p id="pEl">{{ message }}</p>
  </div>
</template>

<script>
export default {
  expose: [
    'message'
  ],
  data() {
    return {
      message: ''
    };
  },
  methods: {
    createMessage(msg) {
      this.message += msg + ' ';
    }
  }
};
<\/script>

<style scoped>
#pEl {
  background-color: lightgreen;
}
</style>

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

گام های عملی

  1. برای حداقل سازی دسترسی، expose را تعریف کن.
  2. اقلام لازم را در آرایه expose بنویس.
  3. در والد، با ref به اقلام مجاز دسترسی بگیر.

نکته: بدون expose همه چیز در والد در دسترس است. مراقب نشت API باش.

هشدار: در متدها از فلش فانکشن استفاده نکن؛ چون this از دست می رود.

جمع بندی سریع

  • expose دسترسی والد را محدود می کند.
  • بدون آن، همه چیز قابل دسترسی است.
  • فقط اقلام ضروری را اکسپوز کن.
  • برای والد از ref استفاده کن.
  • فلش فانکشن در متدها نزن.

لینک های داخلی: emits، پراپس، گزینه expose ویو.

منابع: مرجع expose، Template Refs، شیء $refs.