日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

Vue組件跨層級(jí)獲取組件操作

瀏覽:168日期:2022-12-26 14:07:30

this.$parent 訪(fǎng)問(wèn)父實(shí)例

this.$children 當(dāng)前實(shí)例的直接子組件。(不保證順序,不是響應(yīng)式)

this.$parent.$parent.$refs.xxx 跨級(jí)訪(fǎng)問(wèn)父組件

this.$children.$children.$refs.xxx 跨級(jí)訪(fǎng)問(wèn)子組件

這種遞歸的方式 代碼繁瑣 性能低效

ref

只能獲取當(dāng)前組件上下文組件 無(wú)法跨層級(jí)

ref 是字符串 被用來(lái)給元素或子組件注冊(cè)引用信息。

引用信息將會(huì)注冊(cè)在父組件的 $refs 對(duì)象上。

如果在普通的 DOM 元素上使用,引用指向的就是 DOM 元素;

如果用在子組件上,引用就指向組件實(shí)例

<!-- vm.$refs.p/this.$refs.p 獲取DOM node --><p ref='p'>hello</p><!-- vm.$refs.child/this.$refs.child 獲取組件實(shí)例 --><child-component ref='child'></child-component>

注:

因?yàn)?ref 本身是作為渲染結(jié)果被創(chuàng)建的,在初始渲染的時(shí)候你不能訪(fǎng)問(wèn)它們,它們還不存在

$refs 不是響應(yīng)式的,因此你不應(yīng)該試圖用它在模板中做數(shù)據(jù)綁定。

這僅作為一個(gè)用于直接操作子組件的“逃生艙”——你應(yīng)該避免在模板或計(jì)算屬性中訪(fǎng)問(wèn) $refs。

當(dāng) ref 和 v-for 一起使用的時(shí)候,你得到的引用將會(huì)是一個(gè)包含了對(duì)應(yīng)數(shù)據(jù)源的這些子組件的數(shù)組。

如何優(yōu)雅的獲取跨層級(jí)實(shí)例 ?

1、npm install vue-ref || yarn add vue-ref 安裝vue-ref插件

2、導(dǎo)入import ref from 'vue-ref'

3、使用插件Vue.use(ref, { name: 'ant-ref' });name是給插件起名

插件使用方法

//使用`provide` 在根組件提供數(shù)據(jù) provide() { return { //主動(dòng)通知 將組件實(shí)例綁定在根組件上 setChildrenRef: (name, ref) => { this[name] = ref; }, //主動(dòng)獲取 獲取綁定的組件 getChildrenRef: name => { return this[name]; }, // 獲取根組件 getRef: () => { return this; } }}// 使用`inject` 在子組件中注入數(shù)據(jù)inject: { setChildrenRef: { default: () => {} }, getParentRef: { from: 'getRef', default: () => {} }, getParentChildrenRef: { from: 'getChildrenRef', default: () => {} }}//使用指令注冊(cè)子組件<ChildrenH v-ant-ref='c => setChildrenRef(’childrenH’, c)' />//使用指令注冊(cè)DOM元素<h3 v-ant-ref='c => setChildrenRef(’childrenE’, c)'>E 結(jié)點(diǎn)</h3>

//獲取根組件實(shí)例 this.getParentRef()//獲取指定名稱(chēng)組件實(shí)例this.getParentChildrenRef('childrenH')//這里輸出的事DOMthis.getParentChildrenRef('childrenE')

vue-ref插件源碼

'use strict';Object.defineProperty(exports, '__esModule', { value: true});exports.default = { install: function install(Vue) { var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; var directiveName = options.name || ’ref’; console.log(arguments) Vue.directive(directiveName, { bind: function bind(el, binding, vnode) { //自定義指令傳入值 是函數(shù), 在這里執(zhí)行 傳入組件實(shí)例 binding.value(vnode.componentInstance || el, vnode.key); //vnode.key 是使用插件時(shí)起的名稱(chēng) }, update: function update(el, binding, vnode, oldVnode) { if (oldVnode.data && oldVnode.data.directives) { var oldBinding = oldVnode.data.directives.find(function (directive) { var name = directive.name; return name === directiveName; }); if (oldBinding && oldBinding.value !== binding.value) { oldBinding && oldBinding.value(null, oldVnode.key); // 如果指令綁定的值有變化,則更新 組件實(shí)例 binding.value(vnode.componentInstance || el, vnode.key); return; } } // Should not have this situation if (vnode.componentInstance !== oldVnode.componentInstance || vnode.elm !== oldVnode.elm) { binding.value(vnode.componentInstance || el, vnode.key); } }, unbind: function unbind(el, binding, vnode) { binding.value(null, vnode.key); } }); }};

補(bǔ)充知識(shí):vue項(xiàng)目中z-index不起作用(將vue實(shí)例掛在到window上面)

問(wèn)題描述:由于原有項(xiàng)目(傳統(tǒng)項(xiàng)目)中嵌入新的vue組件,dialog彈出框的z-index:999999;任然不起作用;

解決辦法:將vue實(shí)例掛載到window

解決代碼如下:

入口文件index.js中

import Index from ’./components/index.vue’import ’./index.pcss’function install (Vue) { Vue.component(’gys-index-list’, Index)}if (typeof window !== ’undefined’ && window.Vue) { install(window.Vue)}

在父組件中正確引入壓縮后的css文件+js文件(這里截圖的父組件是html文件)

Vue組件跨層級(jí)獲取組件操作

將元素添加到body上面(解決z-index不起作用,前面內(nèi)容只是鋪墊)

Vue組件跨層級(jí)獲取組件操作

總結(jié)描述:由于項(xiàng)目版本的迭代,需要將新的項(xiàng)目(使用的vue框架)嵌入到原有的傳統(tǒng)的html文件項(xiàng)目中,控制臺(tái)提示找不到vue組件。除了正確引入vue實(shí)例外,需要查看NGINX配置是否正確

以上這篇Vue組件跨層級(jí)獲取組件操作就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Vue
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
你懂的国产精品永久在线| 亚洲综合在线电影| 亚洲激情中文在线| av一区二区高清| 在线国产精品一区| 日本久久二区| 久久久久久久久成人| 欧美韩日一区| 亚洲成人一区| 在线国产一区| 日本不卡在线视频| 精品国产精品国产偷麻豆| 久久久久一区| 亚洲少妇一区| 国产精区一区二区| 樱桃视频成人在线观看| 国产精品毛片一区二区三区| 日韩avvvv在线播放| 国产一区二区久久久久| 91精品啪在线观看国产18| 久久国产精品久久w女人spa| 欧美日韩91| 日韩黄色大片| 亚洲精品高潮| 国产精品嫩草影院在线看| 日韩在线二区| 亚洲精品九九| 中文在线免费视频| 亚洲专区视频| 国产一区二区三区91| 老鸭窝亚洲一区二区三区| 国产欧美啪啪| 999精品色在线播放| 亚洲理论在线| 日本美女一区| 日韩福利视频导航| 日韩国产一区| 日韩欧美中文字幕一区二区三区| 国产精品xxx在线观看| 麻豆国产91在线播放| 日韩视频免费| 中文无码日韩欧| 久久av免费| 韩国精品主播一区二区在线观看| 视频在线在亚洲| 久久精品国产亚洲aⅴ | 久久精品观看| 日韩精品久久久久久久软件91| 97人人精品| 亚洲综合福利| 国产真实久久| 麻豆精品蜜桃视频网站| 亚洲一区二区动漫| 精品国产aⅴ| 日韩成人av影视| 亚洲成人免费| 日本欧美不卡| 国产aⅴ精品一区二区四区| 日韩激情综合| 免费日韩视频| 亚洲天堂久久| 一区二区三区四区日本视频| 欧美日本三区| 一本一道久久a久久| 蜜桃一区二区三区| 日韩欧美精品| 你懂的国产精品| 午夜电影一区| 欧美日韩国产探花| 色婷婷狠狠五月综合天色拍| 欧美激情日韩| 91精品福利观看| 中文字幕日韩高清在线| 欧美日韩国产一区二区三区不卡| 成人污污视频| 精品一区二区三区免费看| 国产日本亚洲| 日韩在线网址| 亚洲精品日韩久久| 亚洲我射av| 视频在线观看91| 男人天堂欧美日韩| 99国产精品| 91久久国产| 日韩视频二区| 日韩视频精品在线观看| 免费精品国产的网站免费观看| 成人日韩精品| 超级白嫩亚洲国产第一| 精品女同一区二区三区在线观看| 国产精品一区二区三区www| 日本成人中文字幕在线视频| 亚洲ww精品| 日韩精品一区二区三区av| 亚洲视频www| 一区三区视频| 国产精品腿扒开做爽爽爽挤奶网站| 免费亚洲一区| 人人精品久久| 国产亚洲欧美日韩精品一区二区三区 | 在线亚洲国产精品网站| 五月天激情综合网| 国产亚洲精品v| 亚洲手机视频| 亚洲国产一区二区三区在线播放| 香蕉精品视频在线观看| 亚洲精品中文字幕乱码| 石原莉奈在线亚洲二区| 亚洲+小说+欧美+激情+另类| 国产探花在线精品一区二区| 国产精品1区在线| 日产午夜精品一线二线三线| 久久精品青草| 蜜桃视频一区二区| 国产麻豆精品| 日本不卡免费高清视频在线| 欧美成人精品| 日韩一区二区三区高清在线观看| 欧美亚洲免费| 国产一区二区三区成人欧美日韩在线观看 | 肉色欧美久久久久久久免费看| 久久人人97超碰国产公开结果| 久久美女精品| 亚洲精品日本| 国产一区精品福利| 欧美在线亚洲综合一区| 日韩动漫一区| 欧美国产一级| 久久av一区| 美女高潮久久久| 久久精品卡一| 另类国产ts人妖高潮视频| 国产欧美另类| 久久精品国产大片免费观看| 婷婷综合一区| 成人福利视频| 日本伊人午夜精品| 三级精品视频| 日韩av不卡一区二区| 欧洲一区二区三区精品| 欧美日韩国产在线一区| 欧美亚洲三级| 精品深夜福利视频| 欧美日韩国产亚洲一区| 国产精品资源| 国产传媒av在线| 特黄毛片在线观看| 久久久久国产| 日韩av在线播放中文字幕| 国产一区二区三区黄网站| 免费不卡中文字幕在线| 日韩不卡一二三区| 午夜久久中文| 免费观看久久久4p| 日韩av福利| 中文视频一区| 黄色在线观看www| 亚洲精品麻豆| 老牛国内精品亚洲成av人片| 欧美日韩四区| 麻豆9191精品国产| 日韩av中文在线观看| 久久香蕉网站| 日韩精品午夜| 久久午夜视频| 国产欧美丝祙| 精品亚洲美女网站| 欧美影院视频| 亚洲风情在线资源| 视频一区二区欧美| 欧美日本二区| 韩国精品主播一区二区在线观看| 91欧美日韩在线| 国产精品久久久久久久免费观看| 99成人在线视频| 日韩一区精品| 久久97久久97精品免视看秋霞| 免费成人av在线播放| 精品视频一区二区三区在线观看| 国精品一区二区| 欧美亚洲一级| 国产综合婷婷| 欧美aa在线视频| 99视频+国产日韩欧美| 久久国产生活片100| 久久一级电影| 久久av中文| 欧美午夜网站| 久久久9色精品国产一区二区三区| 亚洲乱亚洲高清| www.九色在线| 美女久久网站| 亚洲精品一二三区区别| 国产精品jk白丝蜜臀av小说| 红桃视频国产一区| 免费观看亚洲天堂| 爽好久久久欧美精品| 成人av动漫在线观看| 免费在线观看一区| 亚洲资源网站|