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
  • 示例項目結構 在 Visual Studio 中創建一個 WinForms 應用程式後,項目結構如下所示: MyWinFormsApp/ │ ├───Properties/ │ └───Settings.settings │ ├───bin/ │ ├───Debug/ │ └───Release/ ...
  • [STAThread] 特性用於需要與 COM 組件交互的應用程式,尤其是依賴單線程模型(如 Windows Forms 應用程式)的組件。在 STA 模式下,線程擁有自己的消息迴圈,這對於處理用戶界面和某些 COM 組件是必要的。 [STAThread] static void Main(stri ...
  • 在WinForm中使用全局異常捕獲處理 在WinForm應用程式中,全局異常捕獲是確保程式穩定性的關鍵。通過在Program類的Main方法中設置全局異常處理,可以有效地捕獲並處理未預見的異常,從而避免程式崩潰。 註冊全局異常事件 [STAThread] static void Main() { / ...
  • 前言 給大家推薦一款開源的 Winform 控制項庫,可以幫助我們開發更加美觀、漂亮的 WinForm 界面。 項目介紹 SunnyUI.NET 是一個基於 .NET Framework 4.0+、.NET 6、.NET 7 和 .NET 8 的 WinForm 開源控制項庫,同時也提供了工具類庫、擴展 ...
  • 說明 該文章是屬於OverallAuth2.0系列文章,每周更新一篇該系列文章(從0到1完成系統開發)。 該系統文章,我會儘量說的非常詳細,做到不管新手、老手都能看懂。 說明:OverallAuth2.0 是一個簡單、易懂、功能強大的許可權+可視化流程管理系統。 有興趣的朋友,請關註我吧(*^▽^*) ...
  • 一、下載安裝 1.下載git 必須先下載並安裝git,再TortoiseGit下載安裝 git安裝參考教程:https://blog.csdn.net/mukes/article/details/115693833 2.TortoiseGit下載與安裝 TortoiseGit,Git客戶端,32/6 ...
  • 前言 在項目開發過程中,理解數據結構和演算法如同掌握蓋房子的秘訣。演算法不僅能幫助我們編寫高效、優質的代碼,還能解決項目中遇到的各種難題。 給大家推薦一個支持C#的開源免費、新手友好的數據結構與演算法入門教程:Hello演算法。 項目介紹 《Hello Algo》是一本開源免費、新手友好的數據結構與演算法入門 ...
  • 1.生成單個Proto.bat內容 @rem Copyright 2016, Google Inc. @rem All rights reserved. @rem @rem Redistribution and use in source and binary forms, with or with ...
  • 一:背景 1. 講故事 前段時間有位朋友找到我,說他的窗體程式在客戶這邊出現了卡死,讓我幫忙看下怎麼回事?dump也生成了,既然有dump了那就上 windbg 分析吧。 二:WinDbg 分析 1. 為什麼會卡死 窗體程式的卡死,入口門檻很低,後續往下分析就不一定了,不管怎麼說先用 !clrsta ...
  • 前言 人工智慧時代,人臉識別技術已成為安全驗證、身份識別和用戶交互的關鍵工具。 給大家推薦一款.NET 開源提供了強大的人臉識別 API,工具不僅易於集成,還具備高效處理能力。 本文將介紹一款如何利用這些API,為我們的項目添加智能識別的亮點。 項目介紹 GitHub 上擁有 1.2k 星標的 C# ...