Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 亚洲精品日韩精品一区,日韩电影免费,日本特黄aaaaaaa大片

          整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          webpack5資源管理四之加載數據文件使用詳解

          webpack5資源管理四之加載數據文件使用詳解

          ebpack除了可以處理加載頁面資源文件引用之外,還可以加載的資源有數據文件,如 JSON 、CSV、TSV 和 XML格式的文件。類似于 NodeJS, 內置的支持JSON格式的數據,其可以通過 import Data from './data.json' 引入并正常運行。但是要導入 CSV、TSV 和 XML格式的文件,需要使用 對應的csv-loader 和 xml-loader的loader,來處理加載這三類文件。

          初始化示例工程

          創(chuàng)建一個工程名為:webpack-datafile,并進行相應內容的初始化。

          mkdir webpack-datafile
          cd webpack-datafile
          npm init -y
          npm install webpack webpack-cli --save-dev

          工程目錄結構如下:

          工程目錄結構

          加載及配置數據資源

          手下在src目錄下添加數據資源文件data.xml,data.csv。

          其中data.xml文件的內容如下:

          <?xml version="1.0" encoding="UTF-8"?>
          <email>
            <from>張三</from>
            <to>李四</to>
            <subjet>會議</subjet>
            <body>明天上午8點,會議室開會!</body>
          </email>

          data.csv的內容

          from,to,subject,body
          張三,李四,會議,明天上午8點開會
          李四,王五,采購,明天采購一臺筆記本

          然后在src/index.js中,引入數據文件,并進行數據的讀取操作。

          import email from './data.xml'
          import emails from './data.csv'
          
          console.log(email)
          console.log(emails)

          執(zhí)行在本地安裝 數據解析loader:csv-loader 和 xml-loader

          npm install csv-loader xml-loader --save-dev

          完善webpack的配置文件,使其進行項目構建時可以解析xml、csv格式的文件:

          const path=require('path')
          
          module.exports={
              entry: './src/index.js',
              output: {
                  filename: 'bundle.js',
                  path: path.resolve(__dirname,'dist')
              },
              module: {
                  rules: [
                      {
                          test: /\.xml$/i,
                          use: ['xml-loader']
                      },
                      {
                          test: /\.csv$/i,
                          use: ['csv-loader']
                      }
                  ]
              }
          }

          然后執(zhí)行npm run build進行項目的構建。

          npm run build
          
          > webpack-datafile@1.0.0 build D:\work\webpack5\webpack-datafile
          > webpack
          
          asset bundle.js 753 bytes [emitted] [minimized] (name: main)
          runtime modules 663 bytes 3 modules
          cacheable modules 399 bytes
            ./src/index.js 106 bytes [built] [code generated]
            ./src/data.xml 131 bytes [built] [code generated]
            ./src/data.csv 162 bytes [built] [code generated]
          
          WARNING in configuration
          The 'mode' option has not been set, webpack will fallback to 'production' for this value.
          Set 'mode' option to 'development' or 'production' to enable defaults for each environment.
          You can also set it to 'none' to disable any default behavior. Learn more: https://webpack.js.org/configuration/mode/
          
          webpack 5.28.0 compiled with 1 warning in 579 ms

          進入構建之后的目錄并打開index.html,查看控制臺輸出的數據內容:

          效果

          可以看到,控制臺輸出一個對象和一個數組。

          通Vue:手把手教你將JSON數據優(yōu)雅寫入文本,并深度解讀Vue引入CDN的實戰(zhàn)技巧

          一、前言:Vue與JSON數據交互的重要性

          
          
          在現代Web開發(fā)領域中,Vue.js以其輕量級、易上手且功能強大的特性贏得了眾多開發(fā)者青睞。作為一款漸進式JavaScript框架,Vue在處理數據綁定、組件化開發(fā)等方面表現卓越,而JSON(JavaScript Object Notation)作為一種輕量級的數據交換格式,其簡潔明了的特性使其成為前后端通信的首選。因此,掌握如何優(yōu)雅地在Vue項目中處理JSON數據至關重要。本文將詳細介紹如何使用Vue將JSON數據優(yōu)雅寫入文本,并深入探討Vue引入CDN(Content Delivery Network)的實戰(zhàn)技巧,以提升應用性能與用戶體驗。
          
          

          二、Vue中JSON數據的解析與顯示

          2.1 JSON數據的獲取

          javascript
          import axios from 'axios';
          
          export default {
            data() {
              return {
                jsonData: null,
              };
            },
            async created() {
              try {
                const response=await axios.get('https://api.example.com/data');
                this.jsonData=response.data;
              } catch (error) {
                console.error('Error fetching JSON data:', error);
              }
            },
          };
          

          首先,我們需要通過API接口或其他方式獲取JSON數據。以下是一個簡單的HTTP GET請求示例,使用axios庫獲取JSON數據:

          2.2 JSON數據的模板渲染

          html
          <template>
            <div>
              <ul>
                <li v-for="user in jsonData.users" :key="user.id">
                  ID: {{ user.id }} | Name: {{ user.name }} | Age: {{ user.age }}
                </li>
              </ul>
            </div>
          </template>
          

          對應的Vue模板代碼如下:

          三、Vue中將JSON數據優(yōu)雅寫入文本文件

          3.1 使用FileSaver.js實現下載

          
          
          現在,只需在界面中添加一個按鈕觸發(fā)`exportJson`方法,用戶即可將JSON數據優(yōu)雅地保存為名為"data.json"的文本文件。
          
          

          然后在Vue組件中使用:

          四、Vue引入CDN的實戰(zhàn)技巧

          4.1 為什么選擇CDN

          CDN能有效減少網絡延遲、提高資源加載速度、減輕服務器壓力,從而提升應用性能和用戶體驗。對于Vue項目,引入CDN可以加速Vue核心庫、第三方依賴庫(如axios、lodash等)以及靜態(tài)資源(如圖片、字體等)的加載。

          4.2 Vue核心庫CDN引入

          html
          <!DOCTYPE html>
          <html lang="en">
          <head>
            <!-- 替換為Vue CDN鏈接 -->
            <script src="https://cdn.jsdelivr.net/npm/vue@2"></script>
            <!-- 其他meta、link標簽... -->
          </head>
          <body>
            <!-- ... -->
          </body>
          </html>
          

          在HTML文件中,直接替換本地Vue庫引用為CDN鏈接:

          4.3 第三方庫CDN引入

          html
          <script src="https://cdn.jsdelivr.net/npm/axios@0.21"></script>
          <script src="https://cdn.jsdelivr.net/npm/lodash@4.17"></script>
          

          同樣地,第三方庫如axios、lodash等也可以通過CDN引入:

          4.4 靜態(tài)資源CDN托管

          html
          <img src="https://example.cdn.com/path/to/image.jpg" alt="Image from CDN">
          <link rel="stylesheet" href="https://example.cdn.com/path/to/font.css">
          

          對于圖片、字體等靜態(tài)資源,建議將其上傳至云存儲服務(如阿里云OSS、騰訊云COS等),并獲取對應的CDN加速鏈接。在Vue項目中,直接使用CDN鏈接替代本地路徑:

          4.5 備份方案與版本控制

          盡管CDN可以顯著提升應用性能,但應考慮網絡波動、CDN服務不穩(wěn)定等情況,提供本地備份或備用CDN鏈接。同時,對CDN資源進行版本控制,確保在更新依賴時不影響線上應用。

          五、結語

          通過本文,您已掌握了如何在Vue項目中優(yōu)雅地處理JSON數據,包括獲取、渲染與導出,以及如何巧妙地引入CDN以提升應用性能。這些技巧將助力您打造更高效、更穩(wěn)定的Vue應用程序,為用戶提供卓越的Web體驗。持續(xù)關注本頭條號,了解更多前沿的Web前端開發(fā)知識與實戰(zhàn)技巧。

          天給小伙伴們推薦一款強大的Vue可自由拖拽表單設計器組件。

          vue-form-making 基于vue.js簡單高效的表單設計器組件,star高達3.3K+。簡單拖拽即可進行表單設計,可生成/導出json及代碼,支持i18n國際化。

          功能特性

          • 可視化配置頁面
          • 基于vue2.0桌面端組件庫Element-UI
          • 提供柵格布局,并采用flex實現對齊
          • 一鍵預覽配置的效果
          • 一鍵生成配置json數據
          • 一鍵生成代碼,立即可運行
          • 提供自定義組件滿足用戶自定義需求
          • 提供遠端數據接口,方便用戶需要異步獲取數據加載
          • 提供功能強大的高級組件
          • 支持表單驗證
          • 快速獲取表單數據
          • 國際化支持

          CDN方式引入

          <!-- 引入樣式 -->
          <link rel="stylesheet" href="https://unpkg.com/form-making/dist/FormMaking.css">
          <!-- 引入組件庫 -->
          <script src="https://unpkg.com/form-making/dist/FormMaking.umd.js"></script>
          
          <!-- 需要在設計器中預覽代碼需要引入ace.js庫 -->
          <script src="https://unpkg.com/form-making/public/lib/ace/ace.js"></script>
          
          <!-- 使用 -->
          <div id="app">
            <!-- 需要設置編輯區(qū)域高度 -->
            <fm-making-form style="height: 500px;" preview generate-code generate-json>
            </fm-making-form>
          </div>

          NPM安裝

          $ npm i form-making -S

          引入組件

          // 在main.js中完整引入
          import FormMaking from 'form-making'
          import 'form-making/dist/FormMaking.css'
          
          Vue.use(FormMaking)
          
          // 在組件頁面按需引入
          import { GenerateForm, MakingForm } from 'form-making'
          import 'form-making/dist/FormMaking.css'
          
          Vue.component(GenerateForm)
          Vue.component(MakingForm)

          使用插件

          <template>
            <div>
              <fm-generate-form 
                :data="jsonData"
                :remote-option="dynamicData"
                ref="generateForm"
                preview
                generate-code
                generate-json
                :basic-fields="['input', 'textarea', 'radio', 'checkbox', 'switch']"
                :advance-fields="['imgupload', 'editor', 'table']"
              >
              </fm-generate-form>
              <el-button type="primary" @click="handleSubmit">Submit</el-button>
              <el-button @click="handleLoadOption">Load Option</el-button>
            </div>
          </template>
          export default {
            data () {
              return {
                jsonData: {"list":[{"type":"radio","icon":"icon-radio-active","options":{"inline":false,"defaultValue":"","showLabel":false,"options":[{"value":"Option 1","label":"Option 1"},{"value":"Option 2","label":"Option 2"},{"value":"Option 3","label":"Option 3"}],"required":false,"width":"","remote":true,"remoteType":"option","remoteOption":"option","remoteOptions":[],"props":{"value":"value","label":"label"},"remoteFunc":"func_1575969479252","customClass":"","labelWidth":100,"isLabelWidth":false,"hidden":false,"dataBind":true,"disabled":false},"name":"單選框組","key":"1575969479252","model":"option","rules":[]}],"config":{"labelWidth":100,"labelPosition":"right","size":"small","customClass":""}},
                dynamicData: {
                  option : [], // 單選框組 option data
                }
              }
            },
            methods: {
              handleSubmit () {
                this.$refs.generateForm.getData().then(data=> {
                  alert(JSON.stringify(data))
                }).catch(e=> {
                })
              },
          
              handleLoadOption () {
                // 模擬數據請求
                setTimeout(()=> {
                  this.dynamicData.option=[
                    {value: '1111', label: '1111'},
                    {value: '2222', label: '2222'},
                    {value: '3333', label: '3333'}
                  ]
                }, 500)
              }
            }
          }

          語言配置

          FormMaking 組件支持中文簡體(zh-CN)和英文(en-US)兩種語言,默認使用中文簡體。

          Vue.use(FormMaking, {lang: 'en-US'})
          
          // cdn引入配置
          <script>
            Vue.config.lang='zh-CN'
            new Vue({
              el: '#app'
            })
          </script>

          富文本編輯器

          如果需要使用富文本編輯器,需要單獨引入 vue2-editor

          import VueEditor from "vue2-editor"
          
          Vue.use(VueEditor)

          提供各種演示文檔及豐富的示例

          頁面布局

          數據綁定

          ok,就分享到這里。希望對大家有所幫助。如果喜歡,記得多支持下哈。


          主站蜘蛛池模板: 精品无码综合一区二区三区 | 国产一区二区中文字幕| 精品一区二区三区免费毛片| 一区二区三区亚洲视频| 一区二区三区观看免费中文视频在线播放 | 国产色情一区二区三区在线播放| 亚洲国产高清在线精品一区| 久久久99精品一区二区| 亚洲一区二区无码偷拍| 一区二区三区四区免费视频| 精品国产日产一区二区三区| 久久精品国产一区二区| 亚洲国产精品一区二区第一页免| 国产剧情一区二区| 动漫精品第一区二区三区| 国产福利一区二区三区在线视频| 精品永久久福利一区二区| 无码一区二区三区免费| 国产内射在线激情一区| 久久久91精品国产一区二区三区| 国产视频一区二区在线播放| 日韩精品一区二区三区中文字幕 | 在线观看视频一区二区| 亚洲日韩一区二区一无码| 亚洲欧美国产国产综合一区| 天堂va在线高清一区| 51视频国产精品一区二区| 无码乱码av天堂一区二区 | 亚洲啪啪综合AV一区| 无码人妻精品一区二区三区66| 无码成人一区二区| 国产精品一区二区久久精品| 国产成人精品第一区二区| 成人免费视频一区| 国产精品免费大片一区二区| 亲子乱av一区二区三区| 亚洲一区二区中文| 日韩成人一区ftp在线播放| 一区二区三区福利| 一区二区免费视频| 日韩视频一区二区|