Web前端-Vue.js必備框架(五)

来源:https://www.cnblogs.com/dashucoding/archive/2019/03/20/10566091.html
-Advertisement-
Play Games

Web前端 Vue.js必備框架(五) 頁面組件,商品列表組件,詳情組件,購物車清單組件,結算頁組件,訂單詳情組件,訂單列表組件。 下載: 使用 腳手架搭建項目 引入 ,它是為 開發的狀態管理模式,採用集中式存儲管理應用的所有組件的狀態,以相應的規則保證狀態以一種可預測的方式發生變化。 計算屬性 數 ...


Web前端-Vue.js必備框架(五)

Web前端-Vue.js必備框架(五)

頁面組件,商品列表組件,詳情組件,購物車清單組件,結算頁組件,訂單詳情組件,訂單列表組件。

vue-router 路由
vuex 組件集中管理
webpack
vue-cli

node下載:

http://nodejs.cn/

node-v
使用vue-cli腳手架搭建項目

vue+webpack+es6
https://github.com/vuejs/vue-cli
// 全局下載工具
npm install -g vue-cli
// 下載基於webpack模板項目
vue init webpack Smartisan
cd Smartisan
// 下載項目依賴的所有模塊
npm install
npm run dev

官網

效果

表示成功

// 淘寶鏡像
cnpm install -g vue-cli
vue init webpack Smartisan

效果

// 進入項目
cd Smartisan
// 運行我們的項目
npm run dev

搭建成功

成功

cnpm install vuex --save
npm install vuex --save

引入Vuex,它是為vue開發的狀態管理模式,採用集中式存儲管理應用的所有組件的狀態,以相應的規則保證狀態以一種可預測的方式發生變化。

效果

效果

import Vue from 'vue'
import Vuex from 'vuex'

Vue.use(Vuex)

const state = {
    pjtnews: 0,
    count: 1
}

const mutations = {
    add(state) {
        state.count += 1;
    },
    reduce(state) {
        state.count -= 1;
    }
}
export default new Vuex.Store({
    state,
    mutations
});

計算屬性

computed數據緩存,響應式的數據類型,減少模板中計算邏輯,依賴固定的數據類型。

<div>
 <p> {{ reversedMessage1 }} </p>
 <p> {{ reversedMessage2 }} </p>
 <p> {{ now }} </p>
 <button @click="() => $forceUpdate()">update</button>
 <br/>
 <input v-model="message"/>
</div>

<script>
export default {
 data() {
  return {
   message: "hello"
  };
 },
 computed: {
  reversedMessage1: function() {
   return this.message.split("").reverse().join("");
  },
  now: function() {
   return Date.now();
  }
 },
 methods: {
   reversedMessage2: function() {
    return this.message.split("").reverse().join("");
   }
 }
}

偵聽器watch中可以執行任何邏輯。

<temlate>
 <div>
  {{ $data }}
  <br/>
  <button @click="() => ( a += 1 )">a+1</button>
  </div>
<template
<script>
export default() {
 data: function() {
  return {
   a: 1,
   b: { c: 2, d: 3 },
   c: {
     f: {
      g: 4
     }
   },
    h: []
  };
 },
 watch: {
  a: function(val, oldVal){
   this.b.c += 1;
   }
 }
}
// computed watch
computed: {
 add: function() {
   ...
 }
},
watch: {
add: function(val, oldVal) {
 
}
}

// watch
watch: {
 firstName: function(val) {
  this.fullName = val + " " + this.lastName;
 },
 lastName: function(val) {
  this.fullName = this.firstName + " " + val;
 }
}

生命周期

創建階段:

beforeCreate created beforeMount -> render mounted

更新階段:

beforeUpdate -> render updated

銷毀階段:

beforeDestory destroyed
創建階段
beforeCreate
created
beforeMount
render
mounted
更新階段,多次執行
beforeUpdate $forceUpdate
render
updated

銷毀階段:

beforeDestory
destroyed
data
created
beforeMount
render
mounted

updated
beforeUpdate
render
updated
beforeDestory
destroyed

函數式組件:

functional: true

無狀態,無實例,沒有生命周期,沒有this上下文。

指令:

v-text
v-html
v-if
v-else
v-else-if
v-show
v-for
v-on
v-bind
v-model
v-slot
v-pre
v-cloak
v-once
bind
inserted
update
componentUpdated
unbind

vuex是一個專門為vue.js應用程式開發的狀態管理模式。

狀態管理模式:

new Vue({
 // state
 data() {
  return {
   count: 0
  }
 },
 // view
 template: `<div>{{ count }}<div>`,
 // actions
 methods: {
  increment() {
   this.count ++;
  }
 }
})

效果

效果

效果

// store
const store = new Vuex.Store({
  state: {
    count: 0
  },
  mutations: {
    increment (state) {
      state.count++
    }
  }
})

store.commit('increment')

console.log(store.state.count) // -> 1
State
Getter
Mutation
Action
Module

文檔:

https://vuex.vuejs.org/zh/

結言

好了,歡迎在留言區留言,與大家分享你的經驗和心得。

感謝你學習今天的內容,如果你覺得這篇文章對你有幫助的話,也歡迎把它分享給更多的朋友,感謝。

作者簡介

達叔,理工男,簡書作者&全棧工程師,感性理性兼備的寫作者,個人獨立開發者,我相信你也可以!閱讀他的文章,會上癮!,幫你成為更好的自己。長按下方二維碼可關註,歡迎分享,置頂尤佳。

努力努力再努力Jeskson


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 預設的input項是比較難看的,並且它的寬度還無法隨著輸入而變化,這樣未免有些呆板,不過藉助JavaScript可以達到寬度自適應的效果,下麵為了方便使用了jQuery: 點擊此查看樣例 ...
  • 有些時候為了強調某些文字,需要使用一些比較特別的字體,CSS中現在也可以比較方便的引入字體了,如下: 其中font-family就是之後使用時候的字體名稱了,如此一來CSS中就可以直接使用本地的字體了,如下: 如果需要引用線上字體,首先需要找到線上字體,國內推薦谷歌字體,雖然裡面的中文字體不知道什麼 ...
  • 進行樣式修改,初步修改的內容 #home{width:90%;position:relative;}#blogTitle a{color:#fff; text-shadow:1px 1px 5px #ccc;}#blogTitle h2{color:#ffe;font-weight:700;text ...
  • 剛入職的時候看到公司用的HTML日誌生成工具附帶的Panel,工具不夠用,找個Fail還要找半天,於是自己琢磨著添磚加瓦。以前也是個半吊子前端工程師,現在可倒好,想要改頁面卻連頁面生成的模板在哪裡都不知道,只有通過改動JavaScript才能實現對頁面的修改。 固然,操作DOM有原版的 一族,可是它 ...
  • vue的組件,過濾器,監聽屬性,生命周期函數 vue有局部組件和全局組件,這個組件後期用的會比較多,也是非常重要的 局部組件 template與components屬性結合使用掛載 ...
  • 最簡單的解決辦法,不影響其他操作,給提交按鈕增加 type="button" 屬性 完美解決 ...
  • 近幾年,職場上歷經的激蕩與陣痛,比以往來得似乎更為猛烈一些。 近幾年,職場上歷經的激蕩與陣痛,比以往來得似乎更為猛烈一些。 近幾年,職場上歷經的激蕩與陣痛,比以往來得似乎更為猛烈一些。 近幾年,職場上歷經的激蕩與陣痛,比以往來得似乎更為猛烈一些。 2016年,亞馬遜員工平均31歲,谷歌員工均齡30歲 ...
  • 先判斷有沒有,沒有再創建,有就跳過 先判斷有沒有,沒有再創建,有就跳過 <input type="button" value="按鈕" id="btn"/> <div id="dv"></div> my$("btn").onclick=function () { //判斷這個按鈕的子元素是否存在 i ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...