<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當前位置: 首頁 - 科技 - 知識百科 - 正文

        使用Nuxt.js改造已有項目的方法

        來源:懂視網 責編:小采 時間:2020-11-27 22:10:32
        文檔

        使用Nuxt.js改造已有項目的方法

        使用Nuxt.js改造已有項目的方法:前言 如果我們需要對現有的vue項目進行ssr改造,使用nuxt.js是一個不錯的選擇。這里用作例子的現有項目是一個高仿餓了么外賣APP的spa。不過我沒有把全部功能開發出來(全部做出來就不得了了),只是做出幾個基本界面意思意思 下面就以這個d
        推薦度:
        導讀使用Nuxt.js改造已有項目的方法:前言 如果我們需要對現有的vue項目進行ssr改造,使用nuxt.js是一個不錯的選擇。這里用作例子的現有項目是一個高仿餓了么外賣APP的spa。不過我沒有把全部功能開發出來(全部做出來就不得了了),只是做出幾個基本界面意思意思 下面就以這個d

        前言

        如果我們需要對現有的vue項目進行ssr改造,使用nuxt.js是一個不錯的選擇。這里用作例子的“現有項目”是一個“高仿”餓了么外賣APP的spa。不過我沒有把全部功能開發出來(全部做出來就不得了了),只是做出幾個基本界面意思意思

         

        下面就以這個demo為小白鼠進行ssr改造

        準備

        現有目錄

         

        很明顯,這是使用vue-cli搭建的項目

        其中prod.server.js是build之后的啟動文件

        dataa.json文件是模擬數據,在build/dev-server.js中會用到它

        安裝與配置

        安裝nuxt

        npm install --save-dev nuxt

        新建nuxt文件夾

        我們需要在根目錄下建立一個nuxt文件夾,該文件夾的內部組織按照nuxt本身的應用目錄架構進行組織(參考)

         

        注意,在static目錄下有一個logo.png,它將作為項目圖標,在nuxt.config.js中這張圖片的地址直接寫成/logo.png。下一節會對nuxt文件夾的組織進行詳細說明。

        新建并設置nuxt.config.js

        當然,我們也需要在根目錄下創建nuxt.config.js文件用于組織Nuxt.js 應用的個性化配置,在這個項目中,需要進行設置的點有:

        1. 源碼目錄路徑
        2. head中的meta以及link(主要是圖標)
        3. 全局的css樣式
        4. 項目中需要使用圖片和字體文件,雖然nuxt默認對其進行配置,但我們需要重新定義部分內容(項目中是擴大limit)
        5. 項目中使用了sass,需要對其進行配置

        所以,nuxt.config.js的代碼如下

        module.exports = {
         // 設置nuxt源碼目錄路徑
         srcDir: "nuxt/",
         head: {
         title: "sell-nuxt",
         meta: [
         {
         charset: "utf-8"
         },
         {
         name: "viewport",
         content: "width=device-width, initial-scale=1,user-scalable=no,maximum-scale=1.0,minimum-scale=1.0"
         }
         ],
         link: [
         {
         rel: "shortcut icon",
         type: "image/png",
         // 注意圖片的路徑直接指向static下的logo.png
         href: "/logo.png"
         }
         ]
         },
         css: [
         "~assets/reset.css"
         ],
         build: {
         vendor: ['axios'],
         loaders: [
         {
         test: /\.(png|jpe?g|gif|svg)(\?.*)?$/,
         loader: 'url-loader',
         options: {
         limit: 10000,
         name: 'img/[name].[hash:7].[ext]'
         }
         },
         {
         test: /\.(woff2?|eot|ttf|otf)(\?.*)?$/,
         loader: 'url-loader',
         options: {
         limit: 10000,
         name: 'fonts/[name].[hash:7].[ext]'
         }
         },
         {
         test: /\.scss$/,
         loader: "vue-style-loader!css-loader!sass-loader"
         }
         ]
         }
        }

        配置package.json

        package.json是npm的配置文件,現在,我們需要對script選項進行配置

        "scripts": {
         "dev": "nuxt",
         "build": "nuxt build",
         "start": "nuxt start",
         "generate": "nuxt generate",
         "lint": "eslint --ext .js,.vue --ignore-path .gitignore .",
         "precommit": "npm run lint"
         }

        可以參考nuxt的命令列表

        改造后的目錄

         

        其中有個nuxt.api.js,這個文件是為完成ssr改造后的項目提供api接口的,使用koa,運行在3001端口

        nuxt文件夾組織

        因為我們已經把項目代碼開發出來了,所以nuxt文件夾里面的大部分代碼可以直接從已有代碼中拷貝

        layouts

        布局目錄 layouts 用于組織應用的布局組件,nuxt可通過添加 layouts/default.vue 文件來擴展應用的默認布局,在layouts下新建default.vue

        <template>
         <div id="app">
         <v-header v-bind:seller="seller"></v-header>
         <v-tab></v-tab>
         <nuxt/>
         </div>
        </template>
        
        <script>
         import axios from 'axios';
         // 引入組件
         import header from "~/components/header/header.vue";
         import tab from "~/components/tab/tab.vue";
         export default {
         data:function(){
         return {
         seller:{}
         }
         },
         created:function(){
         axios.get("http://localhost:3001/seller").then(res=>{
         console.log(res.data);
         this.seller = res.data.data;
         });
         },
         components:{
         "v-header":header,
         "v-tab":tab
         }
         }
        </script>
        
        <style lang="scss" rel="text/css">
        
        </style>

        <nuxt/> 組件用于顯示頁面的主體內容,即“商品”、“評論”、“商家”這幾個部分

        pages

        nuxt依據 pages 目錄結構自動生成 vue-router 模塊的路由配置,這無疑是非常方便的

         

        不難看出goods、patings、seller分別對應“商品”、“評論”、“商家”

        這樣子設置,則nuxt自動生成的路由配置如下

        router: {
         routes: [
         {
         name: 'index',
         path: '/',
         component: 'pages/index.vue'
         },
         {
         name: 'goods',
         path: '/goods',
         component: 'pages/goods/index.vue'
         },
         {
         name: 'patings',
         path: '/patings',
         component: 'pages/patings/index.vue'
         },
         {
         name: 'seller',
         path: '/seller',
         component: 'pages/seller/index.vue'
         }
         ]
        }

        但我們希望默認進入goods,nuxt官方文檔并沒有說如何設置默認路徑,這就是為什么要在pages下面創建一個index.vue

        <template>
        
        </template>
        
        <script>
         export default {
         created:function(){
         this.$router.push('/goods'); // 頁面加載時跳轉
         }
         }
        </script>
        
        <style lang="scss" rel="text/css">
        
        </style>

        對于那些不需要像在pages下的頁面組件那樣有 asyncData 方法的特性的組件,我們可以將他們放到components目錄下

        assets

        資源目錄 assets 用于組織未編譯的靜態資源如 LESS、SASS 或 JavaScript,這個目錄是我感覺在引用路徑時最坑的一個。
        在官方文檔中,每個目錄都有別名,這些別名在nuxt.config.js中配置時是有效的,比如之前配置的css選項,但不代表我們在組件中使用這些別名會有效,在組件中我們最好使用相對路徑,比如在components/header/header.vue中就不能直接寫~assets,而得老老實實寫相對路徑

        <style lang="scss" rel="text/css" src="../../assets/base.scss"></style>
        <style type="text/css" src="../../assets/style.css"></style>
        <style lang="scss" rel="text/css">
         @import "../../assets/mixin.scss";
         @import "./header.scss";
        </style>

        聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        使用Nuxt.js改造已有項目的方法

        使用Nuxt.js改造已有項目的方法:前言 如果我們需要對現有的vue項目進行ssr改造,使用nuxt.js是一個不錯的選擇。這里用作例子的現有項目是一個高仿餓了么外賣APP的spa。不過我沒有把全部功能開發出來(全部做出來就不得了了),只是做出幾個基本界面意思意思 下面就以這個d
        推薦度:
        標簽: js 現有 方式
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 亚洲天堂男人天堂| 亚洲视频在线观看一区| 久久亚洲精品国产亚洲老地址| 久久久久免费看黄a级试看| 亚洲视频在线免费播放| a在线免费观看视频| 亚洲色成人网站WWW永久| 中国国语毛片免费观看视频| 亚洲三区在线观看无套内射| 中文字幕不卡高清免费| 国产AV无码专区亚洲A∨毛片| 亚洲an日韩专区在线| 69式国产真人免费视频| 亚洲综合偷自成人网第页色| 最近2019中文字幕mv免费看 | 成人免费网站在线观看| 亚洲精品9999久久久久无码| 日韩免费无砖专区2020狼| 亚洲成人在线网站| 国产精品免费网站| 久久精品国产亚洲av瑜伽| 亚洲国产天堂久久综合| 国产午夜不卡AV免费| 亚洲国产精品成人久久久| 日韩免费a级在线观看| 国产免费久久久久久无码| 亚洲AV无码久久精品狠狠爱浪潮| 99久久综合精品免费| 亚洲精品中文字幕无码A片老| 免费国产高清视频| 亚洲欧洲无卡二区视頻| 亚洲精品和日本精品| 久久青草免费91观看| 亚洲人成电影网站色www| 狠狠综合久久综合88亚洲| 国产精品成人免费福利| 一级毛片**免费看试看20分钟| 亚洲AV无码精品色午夜在线观看| 三年片在线观看免费观看高清电影| 思思久久99热免费精品6| 777亚洲精品乱码久久久久久 |