1. 程式人生 > >VUE開發專案遇到的一些問題(一)

VUE開發專案遇到的一些問題(一)

遍歷樹形json資料

var root = [{
            name:'D盤',
            children:[{
                    name:'學習',
                    children:[
                        {
                            name:'電子書',
                            children:[
                                {
                                    name:'文學'
, children:[ { name:'茶館' }, { name:'紅與黑'
} ] } ] } ] }, { name:'電影', children:[ { name:'美國電影'
}, { name:'日本電影' } ] } ] } ] function getMenuName(menus){ for (var value of menus) { if (value.children) { getMenuName(value.children) } value.name = '遍歷' value.value = value.name console.log(value.name); } } getMenuName(root); console.log(JSON.stringify(root, null, 4))

mockjs生成假資料

var Random = Mock.Random;
    var data = Mock.mock({
         'list|3': [{
            'id|+1': 1,
            'age|1-100': 100,
            // 英文姓名
            'name' :'@name',
            // 顏色
            'color': '@color',
            // 英文標題
            'title': '@title',
            // 連結
            'url': '@url("http")',
            // 郵箱
            'email': '@email',
            // 圖片
            'image': Random.image('200x200', '#50B347', '#FFF', 'Mock.js'),
            // 時間
            'date': '@date("yyyy-MM-dd HH:mm:ss")',
            'date2': '@dateTime',
            // 漢字
            'ctitle': '@ctitle(8)',
            // 漢字姓名
            'canme': '@cname()',
            // 地址
            'cadd': '@province' + '@city' + '@county',
            // 手機號
            'phone': /^1[385][1-9]\d{8}/

         }]
     });
     console.log(JSON.stringify(data, null, 4))

vuecli升級之後找不到devserver.js配置檔案之後

//首先
const express = require('express')
const app = express()
var appData = require('../data.json') // 引入資料
var apiRoutes = express.Router()
app.use('/api', apiRoutes)

//找到devServer,新增
before(app) {
  app.get('/api/seller', (req, res) => {
    res.json({
      // 這裡是你的json內容
      errno: 0,
      data: appData.seller // json裡面對應的鍵名
    })
  }),
  app.get('/api/goods', (req, res) => {
    res.json({
      // 這裡是你的json內容
      errno: 0,
      data: appData.goods
    })
  }),
  app.get('/api/ratings', (req, res) => {
    res.json({
      // 這裡是你的json內容
      errno: 0,
      data: appData.ratings
    })
  })
}

http-proxy-middleware 代理設定

config裡面的proxyTable
修改成

不需要動build裡面的dev-server.js裡面的程式碼

 proxyTable: {
     '/api': {
        target: 'http://crm.tonyliangli.cn/api',
        changeOrigin: true,
        pathRewrite: {
          '^/api': ''
        }
      }
    },

監聽事件的引數傳遞

一個子元件使用$emit('eventName', param);傳送事件, 在父元件通過@eventName="listenEvent(父元件事件名字)"

// 父元件
export default {
    methos: {
        listenEvent (data) {
            // data 即為子元件傳遞過來的引數
        }
    }
}

vue-resource的使用

  • 安裝
npm i vue-resource --save-dev
  • 引入
import Vueresource from 'vue-resource'
  • 註冊
Vue.use(Vueresource)
  • 使用
// 便捷方法
this.$http.get({url:'api/index', headers:{Authorization:'Basic Yxsdlfjui'}})
.them((data) => {
    // 請求成功
}, (error) => {
    // 請求失敗
})

// 底層方法
Vue.http({
    url:'api/index2',
    method: 'POST',
    data: {
        param: 1
    }
})
.then((data) => {
    // 請求成功
}, (error) => {
    // 請求失敗
})
  • 便捷方法

便捷方法是對底層方法的封裝

this.$http.get(url,{data},{opation})

  • 引數

    • url: 字串, 請求地址
    • data: 物件或者字串
    • opation: 物件, 傳入的物件來控制請求
  • 返回的response物件

    • data(物件或者字串): 伺服器返回的資料, 已用JSON.parse解析
    • ok(布林值): 當HTTP響應碼在200-299區間是true, 表示響應成功
    • status(數值): HTTP響應碼
    • statusText(字串): HTTP響應狀態文字描述

    - headers(函式): 響應頭資訊

  • 返回Promise物件
    執行HTTP呼叫後會返回一個Promise物件, 該物件提供了then, catch, finally註冊回撥函式

var promise = this.$http.post('api/index');
promise.this(function(response){
    // 成功回撥
}, function(error){
    // 失敗回撥
})

promise.catch(function(error){
    // 失敗回撥
})
promise.finally(function(){
    // 失敗或者成功後都會執行此函式
})
// 所有回撥函式的`this`都指向元件例項
  • JSONP請求

    • 設定methos的值為JSONP即可
    • this.$http.jsonp()也可以
  • 修改發給伺服器端的資料型別

預設情況下, 傳送給伺服器請求頭的Content-Typeapplication/json

有時我們需要將資料提交為指定的型別

  1. 全域性headers配置
Vue.http.headers.post['Content-Type'] = 'application/x-www-form-urlencoded'
  1. 例項配置
this.$http.post(
    'api/index',
    // 成功回撥
    function(data, status, request) {
        if(status === 200) {
            // 成功
        }
    },
    // 例項配置
    {
        headers: {
            'Content-Type':'multipart/form-data'
        }
    }
)

實力配置優先於全域性配置

post請求變成OPTIONS請求的解決方案

Vue.http.options.emulateJSON = true
// 

其他細節知識點

  • 引入的元件名字不能為Index
  • components: {}
  • a標籤的href屬性寫 href="#/rouer"
  • router-link標籤的to屬性寫 to="./"

- Vue.use(外掛名稱); 註冊外掛, 註冊到Vue物件本身上面

VUE修改陣列內元素, 頁面不更新問題解決

由於 JavaScript 的限制, Vue 不能檢測以下變動的陣列:

  • 當你利用索引直接設定一個項時,例如: vm.items[indexOfItem] = newValue
  • 當你修改陣列的長度時,例如: vm.items.length = newLength

為了解決第一類問題,以下兩種方式都可以實現和 vm.items[indexOfItem] = newValue 相同的效果, 同時也將觸發狀態更新:

editNum(index) {
    console.log(this.carts[index].editState);
    let obj = this.carts[index];
    obj.editState = !obj.editState;

    this.$set(this.carts, index, obj);
    console.log(this.carts[index].editState);
}

相關推薦

VUE開發專案遇到的一些問題()

遍歷樹形json資料 var root = [{ name:'D盤', children:[{ name:'學習', child

基於VUE開發專案的那點事(

前言 最近由於公司需要,需要寫一個相對來說比較大型的後臺管理系統。為了保證管理系統操作體驗較為舒適並且專案後期益於維護,最後決定基於VUE全家桶來開發一個高度元件化的單頁SPA應用。 技術選型 vue:進行資料繫結以及開發元件 vue-rou

vue開發專案引入vuex

對於vuex的意義不囉嗦的講 一句話:儲存公共變數的地方   那麼在實際專案開發中是怎麼引入的呢?跟我們在文件上的有何區別呢? 在官方文件上,一般demo是寫在vm例項檔案上的,而實際開發中,保持檔案作用的統一性我們通常新建一個新的檔案或者資料夾來盛放我們的功能程式碼,比

webpack+vue開發專案時遇到報錯如何定位錯誤

前幾天新增一個功能就是,修改localstorage時報的錯,一開始,根本就不知道是什麼原因導致的,然後一直在找原因(ps:對webpack+vue的專案除錯,感覺有點困難,不知道各位大神,看到這樣的錯誤,是如何定位的?正在學習當中,望大神指教一下。)然後我試著在其他瀏覽器開啟,這個問

vue開發專案微信公眾號授權支付開發

router.beforeEach((to, from, next) => {  /**   * 檢測當前是否需要登入驗證   * 1. 確定當前頁面是否需要登入   */  if (!__getItem('isOauth')) {    // 微信授權    if (!getUrlKey('code'

Vue前端專案學習()——搭建環境

在開始之前,首先介紹一個Vue這個框架Vue 是一套用於構建使用者介面的漸進式框架。與其它大型框架不同的是,Vue 被設計為可以自底向上逐層應用。Vue 的核心庫只關注檢視層,不僅易於上手,還便於與第三方庫或既有專案整合。另一方面,當與現代化的工具鏈以及各種支援類庫結合使用時

初次使用vue專案一些經驗

  最近用vue正在寫一個專案,本來以為vue很簡單,但是還是發現是有一些坑在裡面,現在邊寫邊進行總結。   首先遇到的就是頁面中img中標籤的圖片src的載入問題,我開始以為是圖片應該和元件放在一塊,但是發現不行,總是報錯。 ./~/css-loader?

Vue開發環境配置(

專註 成功 名稱 似的 bsp ubd unit test eset module 一、安裝node   到node官網:https://blog.csdn.net/wulala_hei/article/details/85000530 下載系統對應版本安裝即可。   

從零開始搭建Electron+Vue+Webpack專案框架,套程式碼,同時構建客戶端、web端(

摘要:隨著前端技術的飛速發展,越來越多的技術領域開始被前端工程師踏足。從NodeJs問世至今,各種前端工具腳手架、服務端框架層出不窮,“全棧工程師”對於前端開發者來說,再也不只是說說而已。在NodeJs及其衍生技術高速發展的同時,Nw和Electron的問世,更是為前端發展提速不少,依稀記得哪位前輩說過,“能

【原創】從零開始搭建Electron+Vue+Webpack專案框架,套程式碼,同時構建客戶端、web端(二)

導航: (一)Electron跑起來(二)從零搭建Vue全家桶+webpack專案框架(三)Electron+Vue+Webpack,聯合除錯整個專案(未完待續)(四)Electron配置潤色(未完待續)(五)預載入及自動更新(未完待續)(六)構建、釋出整個專案(包括client和web)(未完待續) 摘要:

基於vue框架專案開發過程中遇到的問題總結(

(一)關於computed修改data裡變數的值 問題:computed裡是不能直接修改data裡變數的值,否則在git commit 時會報錯 解決:在computed裡使用get和set來進行獲取和修改data變數,(參考下圖) (二)computed裡監聽陣列

vue 專案開發中的一些bug

1.Property or method "handleSelectionChange" is not defined..... vue定義方法需要定義在key為methods欄位裡面 2.hamburger元件從頭部移動選單欄 不能顯示 解決:選單檔案引入hambur

vue專案開發心得和一些最佳實踐

使用vue一年多了,做了一個javaee的專案(全棧,前端使用的mvvm框架vue),三個移動端專案,其中兩個釘釘子應用(釘釘的坑很多,心累),一個微信的(ing)。自己也慢慢摸索出一些專案中的最佳實踐,整理了一下,做個記錄一起交流。如果你在閱讀過程中,覺得我某

vue學習記錄()—— vue開發調試神器vue-devtools安裝

shell gist 項目 擴展工具 code blog manifest false .net 網上有些貼子少了至關重要的一步導致我一直沒裝上, 切記!!install後還需build,且install和build都在vue-devtools文件夾內執行 github下載

Vue開發系列 壞境搭建

pos 全局 ini 基於 vue-cli vue 項目 ejs 前端開發 使用vue開發,需要用到圍繞vue.js配套的一系列工具,常用的工具如下: vue.js 核心。 VueRouter2 實現路由組織工具。 webpack 項目打包以及編

vue 開發系列(vue 開發環境搭建

更新 AC .org 開發環境搭建 執行命令 taobao AR reg 開發技術 概要 目前前端開發技術越來越像後臺開發了,有一站式的解決方案。 1.JS包的依賴管理像MAVEN。 2.JS代碼編譯打包。 3.組件式的開發。 vue 是一個前端的一站式的前

使用Vue開發移動端專案初始化需要

1、增加移動端適配標籤| <meta name="viewport" content="width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no"> 2、將r

從零開始Vue專案實戰()-準備篇

從前參與過一個react專案的程式碼編寫,大神搭建的框架,我主要負責業務邏輯程式碼編寫,現在回想起來似乎又什麼都不會,現在為了鞏固前端知識,決定用Vue來做這個專案的移動端網站,我本人Vue是從零開始的,一邊學習一邊寫程式碼,在這裡記錄一下過程。 專案說明: 主要功能實現一個投資平臺,會員身份為融資人或投

前端開發實用比較,篇文章告訴你到底是用Vue還是用Angular4、5?

從Angular2時代開始,前端開發就逐漸開始用用Angular了,當時全國都沒什麼人敢碰Angular2,多數開發者就靠著啃它原始碼中的註釋,熟悉了Angular2的用法,並在實用中,還給Angular2團隊提交bug。 但是現在,Vue的出現,讓很多還沒接觸Angular多久的開發者

Vue開發仿旅遊站webapp專案總結 (上)

寫著寫著發現會寫不少內容... 全部寫在一篇文章裡感覺太多了不方便看,所以分為上下篇吧... 溫馨提示 此文章,僅是做完專案後的個人覺得可以總結下來的操作/思路,接觸vue不久的朋友應該會有收穫。此專案也才是萌新做的第二個Vue專案,使用了腳手架工具( vue-cli 2.x 非 3 ),前輩老