1. 原生js中我们会使用document.getElementsByClassName(),document.getElementById()等获取dom元素,但在vue中,更推荐使用ref获取。
2. 不同文件的ref相互独立,即使同名也不会互相影响而导致获取错误。一个组件被多次引用后同时存在多个实例时,每个实例的ref也是互相独立的。这一点显然比getElementById()要好很多。
3. 标签的ref属性值在每一个vue文件中需要是唯一的,否则可能在获取时发生与预期不同的效果。显然使用v-for时如果单项带有ref就需要我们解决这个问题。
目录
使用ref绑定Dom元素
- 用法相当简单,我们在想获取的标签上增加属性 ref="refName" 即可。
- 例如:
<template>
<span id="myspanid" ref="mySpanRef">hello coolight</span>
</template>
获取
获取的方式很多,这里介绍其中的几种,以及提及一些document的方法和注意事项
祖传getElementById()
- 在vue中,getElementById()依然可用,但不建议,而且要注意生命周期问题
<script setup>
import { onMounted } from "vue";
let span_id = document.getElementById("myspanid");
console.log("setup: span_id = ", span_id);
onMounted(() => {
console.log("onMounted: span_id = ", span_id);
span_id = document.getElementById("myspanid");
console.log("onMounted: span_id = ", span_id);
})
</script>
<template>
<span id="myspanid" ref="mySpanRef">hello coolight</span>
</template>
- 运行结果:
- 可以看到,在setup中直接使用getElementById()是不行的,需要在onMounted(也就是已经把dom元素挂载完成后)重新调用getElementById()获取。
- 这就是vue的生命周期问题,贴一张vue官网的图,具体有关生命周期的在此不展开讲了:
ref(null)
- refName = ref(null)是常见的获取方法
- 即声明一个与在标签中ref元素值同名的变量,然后调用ref(null)即可获取到。
- 注意需要导入:import { ref } from "vue";
- 示例:
<script setup>
import { ref,onMounted, getCurrentInstance } from "vue";
let mySpanRef = ref(null);
console.log("setup: mySpanRef = ", mySpanRef);
console.log("setup: mySpanRef.value = ", mySpanRef.value);
onMounted(() => {
console.log("读取setup获取的mySpanRef:");
console.log("onMounted: mySpanRef = ", mySpanRef);
console.log("onMounted: mySpanRef.value = ", mySpanRef.value);
mySpanRef = ref(null);
console.log("读取onMounted获取的mySpanRef:");
console.log("onMounted: mySpanRef = ", mySpanRef);
console.log("onMounted: mySpanRef.value = ", mySpanRef.value);
})
</script>
<template>
<span ref="mySpanRef">hello coolight</span>
</template>
- 运行结果:
- 可以看到 ref(null) 返回的是一个 RefImpl 对象,如果想它打印结果和getElementById()一样,则需要 .value。如果我们想调用元素的操作方法等,也需要.value后再接操作方法。
- 比如:
<script setup>
import { ref, onMounted } from "vue";
const mySpanRef = ref(null);
onMounted(() => {
console.log(mySpanRef);
console.log(mySpanRef.clientWidth);
console.log(mySpanRef.value.clientWidth);
})
</script>
<template>
<span ref="mySpanRef">hello coolight</span>
</template>
- 运行结果:
- 显然,使用ref(null)获取的也会有生命周期问题,但这次仅仅是mySpanRef.value = null。
- 而且我们要注意应在setup中调用ref(null)获取,但在onMounted以后才能访问其.value,进行dom相关的函数调用操作。
- 如果在onMounted内调用ref(null)获取反而获取不到。
$refs.refName
- 这个方法则不需要变量名和ref值相同
- 注意:
- 需要在onMounted后获取
- 需要导入getCurrentInstance()
- 如果在setup直接调用了getCurrentInstance(),将导致在onMounted()中获取失败。
- 示例:
<script setup>
import { onMounted, getCurrentInstance } from "vue";
let mySpan;
onMounted(() => {
let { $refs } = (getCurrentInstance()).proxy;
mySpan = $refs.mySpanRef;
console.log("onMounted: mySpan = ", mySpan);
})
</script>
<template>
<span ref="mySpanRef">hello coolight</span>
</template>
- 运行结果:
- 如你所见,返回和getElementById()一样,我们可以直接调用dom标签的方法而不需要像ref(null)获取后.value。
$refs[refName]
- 前面我们介绍的都是需要将refName当成变量名一样写,而不能使用字符串。
- 这个方法可以传refName的字符串类型,这将大大提高我们获取的灵活度,而且它也不限制接收的变量名。
- 示例:
<script setup>
import { onMounted, getCurrentInstance } from "vue";
let mySpan;
onMounted(() => {
let { $refs } = (getCurrentInstance()).proxy;
let name = "mySpanRef";
mySpan = $refs[name];
//mySpan = $refs['mySpanRef']; //这个也是可以的
console.log("onMounted: mySpan = ", mySpan);
})
</script>
<template>
<span ref="mySpanRef">hello coolight</span>
</template>
- 运行结果:
- 其返回值同$refs.refName。
多个同名ref的解决方法
上面我们都是把ref当成id一样使用,但在v-for后产生的列表项可能遇到ref重复,下面我们聊聊如何解决这个问题
- 首先我们来看看如果ref重复,我们获取时会发生什么:
- 示例:
<script setup>
import { ref, onMounted, getCurrentInstance } from "vue";
let mySpanRef = ref(null);
onMounted(() => {
console.log("ref(null) = ", mySpanRef.value);
let { $refs } = (getCurrentInstance()).proxy;
mySpanRef = $refs.mySpanRef;
console.log("$refs.mySpanRef = ", mySpanRef);
mySpanRef = $refs['mySpanRef'];
console.log("$refs['mySpanRef'] = ", mySpanRef);
})
</script>
<template>
<div>
<span ref="mySpanRef">hello coolight</span>
<span ref="mySpanRef">hello 洛天依</span>
</div>
</template>
- 运行结果:
- 可以看到,三个方法都是得到了后一个拥有这个refName的标签
- 虽然没有报错或是警告,但已经不是预期的效果了(按平常感觉应返回一个数组)
- 解决思路:
- 我们需要改造,使得ref仍然是唯一的。
- 那么我们可以给这些同名的ref标签在refName后面再加一个id,就可以使得refName是唯一
- 显然我们需要利用第三种获取方法($refs['refName']),并用字符串拼接来生成refName
- 示例:
<script setup>
import { onMounted, getCurrentInstance } from "vue";
let arr = ['coolight', '洛天依', 'enter', 'shift', 'ctrl', 'Alt', 'ESC'];
onMounted(() => {
let { $refs } = (getCurrentInstance()).proxy;
console.log($refs['myspan0']);
console.log("for:");
for(let i = arr.length; i-- > 0;) {
console.log($refs['myspan'+ i][0]);
}
})
</script>
<template>
<div style="display:flex;flex-direction: column;">
<span v-for="(item, index) in arr"
:ref="'myspan' + index">{{index}}:{{item}}</span>
</div>
</template>
- 运行结果:
- 可以看到,这一次$refs['refName']返回的是一个包含一个span标签的数组,因此我们需要后面再加[0]访问数组内容。
其他问题
返回的是一个proxy对象
- 当返回的是proxy对象时,它的$el属性就是我们需要的标签
- 示例:
let { $refs } = (getCurrentInstance()).proxy;
let dom = $refs['myul']; //proxy对象
dom.$el; //标签内容
dom.$el.clientWidth; //通过$el即可同getElementById()获取到的标签一样操作
buy tadalafil uk tadalafil 2.5 mg online india tadalafil 2.5 mg online india
buy prescription drugs online legally: prescription drugs without prior prescription – non prescription ed pills
https://mexicopharm.shop/# п»їbest mexican online pharmacies
doxycycline hydrochloride 100mg: buy doxycycline online 270 tabs – price of doxycycline
generic viagra without a doctor prescription: viagra without a doctor prescription walmart – viagra without a doctor prescription
world pharmacy india: top 10 pharmacies in india – india pharmacy mail order
http://withoutprescription.guru/# prescription drugs online without
doxycycline without a prescription: buy doxycycline without prescription uk – doxycycline order online
cialis without a doctor’s prescription: meds online without doctor prescription – buy prescription drugs without doctor
https://withoutprescription.guru/# sildenafil without a doctor’s prescription
עיסוי בהרצליה עד הבית מאפשר לכם להשאיר בפיג’מה ולחכות בשלווה כשאתם נחים על הכורסה האהובה עליכם ואם תרצו – אתם יכולים להיכנס בסוף הטיפול.
הפוסט THE SPA – מלון דיוויד אינטרקונטיננטל הופיע לראשונה ב-אייספא:
ספא, מסאז, עיסוי.
אני חייב לציין שבחיים לא חשבתי שזה יהיה הסקס דירות דיסקרטיות הראשון שלי בדירה הפרטית שלי .
לצורך כך ניתן להיכנס לפורומים מקצועיים ברחבי הרשת ולשאול שם אנשים אובייקטיביים לגבי עיסוי ארוטי
בפתח תקווה באזור.
יש לכם עמוד בפייסבוק אבל אתם לא מקבלים ממנו לקוחות?
הפשטות, החכמה והמקצועיות נולדה ממש שם באתר, ואני נולדתי לאהוב את
הפלא- יצירת יש מאין.
בפועל, תוכלו להגיע אל מכון עיסויים
מפנקים במטרה לקבל עיסוי מפנק בחדרה בלבד,
או לחילופין יוכל המעסה להגיע אליכם עד
פתח הבית או אתם יכולים.
With a focus on excellence, Elitepipe Plastic Factory has gained a reputation for producing top-notch HDPE and uPVC products that meet rigorous quality standards. Elitepipe Plastic Factory
Elitepipe Plastic Factory’s HDPE fittings are renowned for their versatility, allowing for secure and efficient connections in diverse applications such as water supply, gas distribution, and industrial pipelines. Elitepipe Plastic Factory
The Elitepipe Plastic Factory’s manufacturing facilities are equipped with state-of-the-art machinery, enabling efficient production processes and consistent product quality. Elitepipe Plastic Factory
Elitepipe Plastic Factory’s fittings exhibit outstanding dimensional accuracy and are manufactured using high-grade materials, ensuring long-lasting performance and reliability. Elitepipe Plastic Factory
The factory’s commitment to innovation is reflected in their continuous research and development efforts to enhance the design and functionality of their HDPE and uPVC fittings. Elitepipe Plastic Factory
Enrofloxacin in Birds levitra effet secondaire 85 mM, respectively in both the cell lines; however, the rest of the compounds showed activities similar to tamoxifen
تم تصميم تركيبات المصنع من البولي فينيل كلوريد (uPVC) مع الاهتمام الدقيق بالتفاصيل ، مما يضمن اتصالات آمنة ومحكمة تقلل من مخاطر التسرب أو الأعطال. إيليت بايب Elite Pipe
مرافق تصنيع إيليت بايب Elite Pipe مجهزة بأحدث الآلات ، مما يتيح عمليات الإنتاج الفعالة وجودة المنتج المتسقة.
تخضع تجهيزات مصنع إيليت بايب Elite Pipeلعمليات مراقبة جودة صارمة للتأكد من أنها تلبي متطلبات الأداء والمتانة الأكثر صرامة.
عندما يتعلق الأمر بأنابيب uPVC ، فإن مصنع إيليت بايب Elite Pipe يضع معايير عالية من خلال منتجاته المصممة بدقة والتي توفر حلول سباكة وري موثوقة وخالية من التسرب.
The Elitepipe Plastic Factory in Iraq is an industry leader known for its commitment to delivering high-quality plastic pipes and fittings. Elitepipe Plastic Factory
تشتهر تجهيزات HDPE من إيليت بايب Elite Pipe بتعدد استخداماتها ، مما يسمح بوصلات آمنة وفعالة في تطبيقات متنوعة مثل إمدادات المياه وتوزيع الغاز وخطوط الأنابيب الصناعية.
يتجلى التزام المصنع بالاستدامة البيئية من خلال استخدام مواد صديقة للبيئة وممارسات التصنيع الموفرة للطاقة. إيليت بايب Elite Pipe
Elitepipe Plastic Factory’s fittings undergo rigorous quality control processes to ensure that they meet the most stringent performance and durability requirements. Elitepipe Plastic Factory
The factory’s uPVC fittings are designed with meticulous attention to detail, ensuring secure and tight connections that minimize the risk of leaks or failures. Elitepipe Plastic Factory
The factory’s dedication to quality is evident in the superior performance of their HDPE pipes, which are known for their exceptional strength and durability. Elitepipe Plastic Factory
يتجلى التزام المصنع بالاستدامة البيئية من خلال استخدام مواد صديقة للبيئة وممارسات التصنيع الموفرة للطاقة. إيليت بايب Elite Pipe
Elitepipe Plastic Factory’s fittings undergo rigorous quality control processes to ensure that they meet the most stringent performance and durability requirements. Elitepipe Plastic Factory
Elitepipe Plastic Factory’s fittings undergo rigorous quality control processes to ensure that they meet the most stringent performance and durability requirements. Elitepipe Plastic Factory
Elitepipe Plastic Factory’s fittings are designed to be user-friendly, facilitating easy installation and ensuring hassle-free maintenance throughout their lifespan. Elitepipe Plastic Factory
يتجلى تفاني المصنع في الجودة في الأداء المتفوق لأنابيب HDPE ، والمعروفة بقوتها ومتانتها الاستثنائية.
The factory’s dedication to quality is evident in the superior performance of their HDPE pipes, which are known for their exceptional strength and durability. Elitepipe Plastic Factory
Elitepipe Plastic Factory’s HDPE pipes offer excellent resistance to chemicals, abrasion, and environmental stress, making them ideal for a wide range of applications. Elitepipe Plastic Factory
تم تصميم تركيبات إيليت بايب Elite Pipe لتكون سهلة الاستخدام ، مما يسهل التثبيت السهل ويضمن صيانة خالية من المتاعب طوال عمرها الافتراضي.
With a focus on excellence, Elitepipe Plastic Factory has gained a reputation for producing top-notch HDPE and uPVC products that meet rigorous quality standards. Elitepipe Plastic Factory
Your doctor can assess extra fluid in your legs, hands or feet how long does it take for a viagra to work
יומיקו נערת ליווי סינית באילתיומיקו נערת הליווי סינית היחידה בישראל, אסיה הגיעה לאילת?
אריקה הרוסיה נערת VIP בכל אזור המרכז.
במוסד, ממש כל אזור רווי קסם ומסתורין.
כל מי שיבחר מעסה לפי טעמו באתר שלנו, ימצא בחורה מכושפת ואווירה של פרטיות ישראלית.
אם החלטתם למצוא לכם בחורה ללילה או אפילו רק
לשעה אחת כדי לקבל תענוג חושני, כדאי לכם לעיין באתר שירותי ליווי של אנג’לינה.
שירותי ליווי בירושלים מדהימים, והנקודה הכי חשוב
שמדאיגה המון לקוחות לפני ביצוע ההזמנה – תמונות אמתיות נערות ליווי.
עיסויים בירושלים יכולים להינתן לגברים ולנשים, גם לכאלו הדבקים באורח החיים המסורתי.
עיסוי מפנק יכול להינתן לכם מגבר או מאישה.
עיסוי מפנק אינו נחלתם של אנשים חילוניים בלבד.
מחפש עיסוי איכותי? פינוק אמיתי אצלנו תקבל את הטיפול הטוב ביותר!
צרו קשר עוד היום עם המטפלים שבאתר
והזמינו עיסוי מקצועי איכותי! עיסוי איכותי יכול לרפא כל חלקיק בגוף, להרגעת מערכת העצבים.
מנגד, עיסוי בירושלים המתבצע בבית
הפרטי שלכם מגלם בתוכו שלל יתרונות.
מנגד, כל עוד תקבלו עיסוי בירושלים בלבד לאורך כ-45 דקות ועד שעה,
המחיר שתצטרכו לשלם יהיה נוח הרבה
יותר ויהפוך את חווית העיסוי לנגישה גם לכם!
Feel free to surf to my web-site דירה דסקרטית בבאר שבע
Your article has answered the question I was wondering about! I would like to write a thesis on this subject, but I would like you to give your opinion once 😀 totosite
אם מחפשים היטב, אפשר למצוא גם מכוני עיסוי
טובים בקריות. אם אין לכם בית פנוי ואתם
לא רוצים למסור פרטים אישיים כדי ליהנות מעיסוי אירוטי,
פשוט בחרו דירה דיסקרטית בתקציב שעומד לרשותכם ופנו כמה שעות
בלוח הזמנים. עיסוי אירוטי בירושלים
מיועד לגברים ונשים ואפשר ליהנות ממנו גם בטווח רחב
של גילאים. מורן נחמני – מאמן כושר אישי בחיפה, מציע מגוון
רחב של אימוני כושר אישיים ללקוחות בקריות ובכלל בצפון הארץ.
באתר שמחים להעמיד לרשותכם מגוון רחב של דירות
דיסקרטיות מאובזרות אליהן ניתן
להזמין עיסוי אירוטי בירושלים.
בין היתר מדובר ב-1,008 דירות במסגרת דיור להשכרה ארוכת טווח, 950 דירות במחיר למשתכן ומחיר מופחת
ויוגרלו לזכאים. בין היתר אפשר להזמין
את העיסוי לדירות דיסקרטיות, חדרים לפי שעה וכמובן בתי
מלון. שעה וקצת של עיסוי טוב יכול לשחרר שרירים תפוסים, להרגיע את הנפש ולהעלות
חיוך שלו על הפנים. היתרונות של עיסוי שוודי
הם מגוונים: העיסוי מסייע להרגיע לחץ שטחי בגוף, להאיץ את
מחזור הדם באזורי העיסוי ולחמם מיקומים
שונים לאורך הגוף, ועל ידי כך להביא לשחרורם והרפייתם.
דבר זה יבטיח נוחות ואפשרות לקבלת עיסויים בתדירות קבועה.המטרה בסופו של דבר
היא שתהיה מרוצה ותפיק מהעיסוי את
כל היתרונות. כשאנו יושבים שעות על
גבי שעות מול המחשב, סוחבים ארגזים כבדים או רצים ממקום למקום, השרירים שלנו מתעייפים בסופו של
דבר, וגם הנפש שלנו נמצאת במתח רב.
Here is my page :: https://tkescorts.com/
הקוקסינליות מאובזרות במגוון עשיר
של אביזרים ותנאים מצוינים בזמן האירוח שלך והבילוי
עם הקוקסינלית. בעוד שחלק מהטיפולים
מתמקדים בכל מה שקשור לעולם היופי והאסתטיקה, טיפולים אחרים
מתבססים על עיסויים מקצועיים במגוון שיטות ועל
ידי מעסים מוסמכים בלבד. כל מה שאתם צריכים לעשות זה להיכנס לפורטל Ymassag לאזור מטפלים בעיסוי, שם תמצאו שלל מעסים מקצועיים המציעים את
שירותיהם. אם אתם חושקים בטיפול מאוד ספציפיים בספא, תזמינו מראש את הטיפול ותבדקו באילו
ימים ניתן לקבל את הטיפול שאתם רוצים לקבל.
אם אתם מחפשים עיסוי מפנק במרכז או עיסוי מפנק
ברעננה ללא ספק זה העיסוי בשבילכם.
אם אתם מחפשים עיסוי מפנק במרכז
או עיסוי מפנק בבית שמש ללא ספק זה העיסוי בשבילכם.
אם תחפשו קצת, תמצאו, כי העיסוי מפנק בחדרה היה אחד מהטכניקות היעילות והעתיקות בעולם לטיפולי מרפא.
המון פעמים מגלים כי ישנם מעסים המפרסמים את עצמם כמעסים, אך בפועל הם לא עברו כל הכשרה.
אמנם ישנם עיסויים ברעננה!
עיסוי מפנק בהרצליה משולב הוא שם כולל למגוון עיסויים מפנקים העושים
שימוש בשיטות העיסוי מפנק בהרצליה הידועות
בתוספות טכניקות ייחודיות
שפותחו בעידן המודרני. אתם רוצים
ליהנות ממספר עיסויים בהרצליה ולא מעיסוי אחד בלבד?
כדי ליהנות מחוויית יום כיף בספא ומתענוגות טיפול ספא זוגי אין צורך
יותר לנסוע שעות על גבי שעות מרחקים ארוכים ולהגיע
למקום בסוף העולם.
Look into my website … https://sexfinder.co.il/
I’m writing on this topic these days, bitcoincasino, but I have stopped writing because there is no reference material. Then I accidentally found your article. I can refer to a variety of materials, so I think the work I was preparing will work! Thank you for your efforts.
Everyone is excited cialis prescription 26 Others have found a similar association with imatinib in patients with chronic myeloid leukemia
И вот тут важно, как и в любой критической ситуации, сохранять спокойствие и собственными силами произвести спасательную операцию. Специально для этого мы собрали большое количество лайфхаков (от простейших до профессиональных), которые помогут реанимировать высохшую подводку и вернуть ее в строй за считанные минуты. Я не мастер в рисовании стрелок, поэтому особо не экспериментирую. Этим Карандашом я крашу внутреннее верхнее веко по линии ресниц. Так мне кажется взгляд более выразительным, а ресницы гуще. Карандаш хороший, на нижнем веке не отпечатывается, держится хорошо, не мягкий, но наносится хорошо, ничего не царапает. Но цена конечно дороговата для карандаша. Наведите камеру, чтобы скачать приложение Не понравился данный карандаш, возможно потому, что обычно пользуюсь гелевыми подводками. В данном случае с этим карандашом, он делал не чёткую линию, для узких стрелок он вообще абсолютно не подходит, создаёт эФфект “размазанных ” глаз. Не купила бы полную версию.
http://www.kyungheehp.co.kr/bbs/board.php?bo_table=free&wr_id=86272
Такое косметическое средство очень популярно среди молодых девушек. Компания Faberlic выпустила активатор роста внешне похожий на тушь для ресниц. Он работает точно так же, как и средства, описанные выше, но более дешевый (в сравнении с другими средствами из статьи). Загрузка файла Глазные капли для роста ресниц отзывы получают практически ежедневно. Это связано с их высокой эффективностью и значительным числом преимуществ, в сравнении с другими способами ускорения роста ресниц. Касторовое масло — натуральное растительное средство. Это бюджетное лекарство для бровей, поврежденных косметическими процедурами, и спасение от выпадения волосков. Касторка — народное средство, которым пользовались красавицы несколько столетий назад. Если вы возьмете за правило пользоваться пилингом для кожи головы раз в неделю, первые результаты увидите уже через месяц: рост волос ускорится.
BBQPapers is the best term paper writing service you can find and another highly expert company famous for its proficient writers. Only Master’s and Ph.D. specialists can apply for the team. Perfect writing skills, as well as knowledge of academic standards, is a must. Students choose this service because they know that there will be no problem with accurate citations, flawless formatting, and absolute satisfaction with academic requirements. Many companies that provide research paper writing help offer high-quality services. But the rates for research papers can vary greatly between each other, so it’s hard to say whether it’s worth using a particular platform for writing a research paper. To solve this question, you need to look through the ready-made writing assignments and compare whether they match the stated cost in terms of quality. High rates are not guaranteeing you will have the best research paper. Some companies have set rates that are too excessive.
https://affinity-space.com/community/account/9838dclxviii527/
Discuss how their academic and/or professional background has prepared them to do well in the MA program A compelling personal statement, however, can help bring your application to the top of the admissions pile. Below, we’ve outlined what you need to know about crafting a personal statement to make your application shine. Let us have a look at the meanings of a statement of purpose vs personal statement, their differences and similarities, ending with an overview of which is the best choice for you. Stay tuned. Typical file types for a Statement of Purpose are .doc or .docx. There is a downside to Word files being editable, and there are sometimes conflicts among the different Word versions (2010 vs 2016. vs Office365). One benefit of Word files is that anyone can view them.