首頁 >web前端 >Vue.js >vue怎麼讀取本機文件

vue怎麼讀取本機文件

藏色散人
藏色散人原創
2021-09-15 11:35:0619687瀏覽

vue讀取本機檔案的方法:1、透過「function (name) {...}」取得本機的檔案;2、在元件中引入並進行對應的字串處理;3、透過循環將「this.iconList」裡面的值綁定到「5a8028ccc7a7e27417bff9f05adf593272ac96585ae54b6ae11f849d2649d9e6」的class即可。

vue怎麼讀取本機文件

本文操作環境:Windows7系統、Vue2.9.6版,DELL G3電腦

vue怎麼讀取本機檔案?

vue中讀取本機檔案

背景

#再專案開發過程中,有動態設定字體圖示的需求,保證圖標選框中的圖示和最後發布的項目圖示庫一致。

思路

讀取本機字體圖示庫文件,然後進行對應的字串轉換,這樣就可以保持圖示的一致啦

步驟

1、取得本機的檔案

const loadFile = function (name) { // name为文件所在位置
    let xhr = new XMLHttpRequest(),
        okStatus = document.location.protocol === "file:" ? 0 : 200;
    xhr.open('GET', name, false);
    xhr.overrideMimeType("text/html;charset=utf-8");//默认为utf-8
    xhr.send(null);
    return xhr.status === okStatus ? xhr.responseText : null;
}
export default loadFile;

2、元件中引入並進行對應的字串處理

import loadFile from '../assets/js/localFile';

處理取得的檔案數據

            // 以.iconfont为节点分割字符串,只需要.iconfont之后的字符串
                let iconData = loadFile('iconfont/iconfont.css').split('.iconfont')[1];
                // 获取第一次出现'}'时候的索引值
                let iconLi = iconData.indexOf('}');
                // 得到第一次出现'}'之后的所有字符串信息【这部分就是我们需要的字体图标的信息】
                let liList = iconData.substring(iconLi + 1, iconData.length-1);
                // 分割每个字体图标信息
                let icons = liList.split('.');
                // 设置分割标识
                let flag = ':before';
                // 循环获取到的字体图标数组
                for (let i = 0; i < icons.length; i++) {
                    // 判断不为空
                    if (icons[i].indexOf(flag) > -1) {
                        // 获取图标信息中的class部分,也就是:before之前的信息
                        let liList = icons[i].split(flag);
                        // 将class添加到数组,最后再页面上进行循环输出
                        this.iconList.push(liList[0]);
                    }
                }

最後透過循環,將this.iconList 裡面的值綁定到5a8028ccc7a7e27417bff9f05adf593272ac96585ae54b6ae11f849d2649d9e6 的class 即可。

推薦學習:《最新的5個vue.js影片教學精選

以上是vue怎麼讀取本機文件的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn