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

您的位置:首頁技術文章
文章詳情頁

Vue組件跨層級獲取組件操作

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

this.$parent 訪問父實例

this.$children 當前實例的直接子組件。(不保證順序,不是響應式)

this.$parent.$parent.$refs.xxx 跨級訪問父組件

this.$children.$children.$refs.xxx 跨級訪問子組件

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

ref

只能獲取當前組件上下文組件 無法跨層級

ref 是字符串 被用來給元素或子組件注冊引用信息。

引用信息將會注冊在父組件的 $refs 對象上。

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

如果用在子組件上,引用就指向組件實例

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

注:

因為 ref 本身是作為渲染結果被創建的,在初始渲染的時候你不能訪問它們,它們還不存在

$refs 不是響應式的,因此你不應該試圖用它在模板中做數據綁定。

這僅作為一個用于直接操作子組件的“逃生艙”——你應該避免在模板或計算屬性中訪問 $refs。

當 ref 和 v-for 一起使用的時候,你得到的引用將會是一個包含了對應數據源的這些子組件的數組。

如何優雅的獲取跨層級實例 ?

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

2、導入import ref from 'vue-ref'

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

插件使用方法

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

//獲取根組件實例 this.getParentRef()//獲取指定名稱組件實例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) { //自定義指令傳入值 是函數, 在這里執行 傳入組件實例 binding.value(vnode.componentInstance || el, vnode.key); //vnode.key 是使用插件時起的名稱 }, 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); // 如果指令綁定的值有變化,則更新 組件實例 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); } }); }};

補充知識:vue項目中z-index不起作用(將vue實例掛在到window上面)

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

解決辦法:將vue實例掛載到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組件跨層級獲取組件操作

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

Vue組件跨層級獲取組件操作

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

以上這篇Vue組件跨層級獲取組件操作就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持好吧啦網。

標簽: Vue
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
国产成人精品三级高清久久91| 亚洲一区日韩| 日韩一二三区在线观看| 欧美在线观看天堂一区二区三区| 久久av国产紧身裤| 日韩88av| 亚洲在线电影| 精品一区二区三区在线观看视频| 日韩在线看片| 久久成人一区| 成人在线视频区| 狠狠操综合网| 国产九九精品| 国产91欧美| 夜夜精品视频| 国产精品99视频| 亚洲精品在线a| 精品国产亚洲一区二区三区| 激情综合亚洲| 国产一区丝袜| 久久精品99国产国产精| 视频一区中文| 国产精品久久久久久久免费观看| 国内精品99| 成人亚洲精品| 免费看一区二区三区| 综合干狼人综合首页| 免费欧美一区| 欧美日韩一二| 亚洲涩涩在线| 91精品国产一区二区在线观看| 亚洲成人免费| 蜜桃视频欧美| 亚洲精华国产欧美| 亚洲激情不卡| 制服诱惑一区二区| 国产精品毛片在线| 欧美中文日韩| 亚洲一级大片| 日韩不卡一二三区| 69堂免费精品视频在线播放| 日韩精品亚洲专区在线观看| 亚洲a成人v| 国产欧美日韩一级| 欧美激情精品| 国产精品久久久久久久久久10秀| 91亚洲国产| 久久蜜桃资源一区二区老牛| 欧美日韩精品一区二区视频| 黄色不卡一区| 少妇精品久久久一区二区| 中文字幕视频精品一区二区三区| 亚洲一区av| 国产美女视频一区二区| 麻豆精品av| av一区在线| 视频一区中文字幕| 日韩精品视频中文字幕| 亚洲精品极品| 欧美日韩va| 精品视频国内| 中文另类视频| 欧美日韩一二三四| 亚洲青青久久| 98精品视频| 亚洲一区二区成人| 国产亚洲观看| 成人免费电影网址| 亚洲人成网站在线在线观看| 国产激情一区| 日韩视频精品在线观看| 日韩avvvv在线播放| 亚洲精品国产嫩草在线观看 | 香蕉成人av| 日韩av在线播放中文字幕| 成人欧美一区二区三区的电影| 亚洲一区二区三区久久久| 国产一区2区在线观看| 三级在线观看一区二区| 精品视频一区二区三区在线观看 | 色婷婷色综合| 亚洲a成人v| 亚洲激情中文在线| 国产一区二区三区视频在线| 美国三级日本三级久久99 | 丝袜美腿一区二区三区| 激情综合五月| 美腿丝袜亚洲三区| 日韩精品导航| 免费在线观看视频一区| 欧美va天堂在线| 欧美日韩国产观看视频| 九九九精品视频| 一区二区亚洲精品| 国产精品免费不| 精品一区二区三区视频在线播放| 国产一级久久| 久久青青视频| 国产精品毛片久久| 精品99在线| 久久永久免费| 国产精品福利在线观看播放| 乱人伦精品视频在线观看| 久久精品二区三区| 国产成人精品福利| 国产精品精品| 成人久久一区| 亚洲高清二区| 国产视频一区三区| 中文字幕日韩亚洲| 日韩精品a在线观看91| 日本va欧美va精品发布| 国产精品欧美三级在线观看| 国产精品一区二区精品视频观看| 国产精品超碰| 成人台湾亚洲精品一区二区| 亚洲天堂资源| 午夜日本精品| 日韩精品视频在线看| 久久99性xxx老妇胖精品| 98精品视频| 免播放器亚洲一区| 国产精品丝袜在线播放| 精品三区视频| 夜夜精品视频| 久久一区精品| 欧美日韩国产免费观看| 日本午夜精品久久久| 你懂的国产精品永久在线| 国产一区清纯| 国产亚洲字幕| 久久人人97超碰国产公开结果| 伊人久久大香伊蕉在人线观看热v| 国产欧美高清| 五月天久久777| 国产精品白浆| 免费看的黄色欧美网站| 欧美精品成人| 亚洲综合日本| 久久久久久夜| 97成人超碰| 亚洲欧洲一区二区天堂久久| 国产精品红桃| 另类亚洲自拍| 久久在线电影| 国产精品久久久久久久久免费高清| 在线日韩中文| 91免费精品| 久久精品一区二区国产| 蜜臀久久99精品久久久画质超高清| 久久精品系列| 日韩在线观看一区二区三区| 久久精品国产亚洲夜色av网站| 欧美日韩亚洲国产精品| 亚洲高清毛片| 日韩在线不卡| 久久久久久久欧美精品| 亚洲一区亚洲| 久久青草久久| 欧美激情五月| 国产精品入口久久| 亚洲欧美在线综合| 久久大逼视频| 亚洲综合电影一区二区三区| 久久精品不卡| 欧美高清一区| 欧美精选一区二区三区| 福利一区二区三区视频在线观看| 欧美一级一区| 中文字幕中文字幕精品| 午夜久久99| 9色国产精品| 亚洲一级高清| 香蕉视频亚洲一级| 久久久久97| 日韩在线短视频| 日韩在线免费| 久久三级视频| 国产偷自视频区视频一区二区| 午夜电影亚洲| 亚州欧美在线| 国产极品模特精品一二| 国产一区二区三区探花| 97精品国产| 99亚洲视频| 国产欧美日韩免费观看| 精品久久久久中文字幕小说| 国产综合色区在线观看| 亚洲在线成人| 国产精品密蕾丝视频下载| 成人午夜毛片| 黑丝一区二区| 日韩午夜视频在线| 国产一区二区三区日韩精品| 国产亚洲一区二区手机在线观看| 91精品99| 日韩不卡手机在线v区| 久久久久久色 | 欧美日韩亚洲一区| 成人黄色av|