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/

结言

好了,欢迎在留言区留言,与大家分享你的经验和心得。

感谢你学习今天的内容,如果你觉得这篇文章对你有帮助的话,也欢迎把它分享给更多的朋友,感谢。

作者简介

达叔,理工男,简书作者&全栈工程师,感性理性兼备的写作者,个人独立开发者,我相信你也可以!阅读他的文章,会上瘾!,帮你成为更好的自己。长按下方二维码可关注,欢迎分享,置顶尤佳。

Web前端-Vue.js必备框架(五)的更多相关文章

  1. Web前端-Vue.js必备框架(四)

    Web前端-Vue.js必备框架(四) 计算属性: <div id="aaa"> {{ message.split('').reverse().join('') }} ...

  2. Web前端-Vue.js必备框架(三)

    Web前端-Vue.js必备框架(三) vue是一款渐进式javascript框架,由evan you开发.vue成为前端开发的必备之一. vue的好处轻量级,渐进式框架,响应式更新机制. 开发环境, ...

  3. Web前端-Vue.js必备框架(二)

    Web前端-Vue.js必备框架(二) vue调式工具vue-devtools 过滤器:vue.js允许你自定义过滤器,可被用作一些常见的文本格式化. mustache插值和v-bind表达式. vu ...

  4. Web前端-Vue.js必备框架(一)

    Web前端-Vue.js必备框架(一) <!DOCTYPE html> <html lang="en"> <head> <meta cha ...

  5. web前端——Vue.js基础学习

    近期项目的前端页面准备引入Vue.js,看了网上一些简介,及它和JQuery的对比,发现对于新入门的前端开发来说,Vue 其实也是比较适用的一个框架,其实用性不比JQuery差,感觉还挺有意思,于是研 ...

  6. Web - 前端 Vue.js (1)

    Vue.js是当下很火的一个JavaScript MVVM库,它是以数据驱动和组件化的思想构建的.相比于Angular.js,Vue.js提供了更加简洁.更易于理解的API,使得我们能够快速地上手并使 ...

  7. web前端——Vue.js基础学习之class与样式绑定

    打着巩固 css 知识的旗号开始了对 vue 样式绑定的研究,相比前一篇的 demo,本次内容多了各种样式在里面,变得稍微花哨了些,话不多说,直接上代码吧: <html> <head ...

  8. web前端Vue+Django rest framework 框架 生鲜电商项目实战✍✍✍

    web前端Vue+Django rest framework 框架 生鲜电商项目实战  整个课程都看完了,这个课程的分享可以往下看,下面有链接,之前做java开发也做了一些年头,也分享下自己看这个视频 ...

  9. web前端Vue+Django rest framework 框架 生鲜电商项目实战视频教程 ☝☝☝

    web前端Vue+Django rest framework 框架 生鲜电商项目实战视频教程    web前端Vue+Django rest framework 框架 生鲜电商项目实战视频教程 学习 ...

随机推荐

  1. .NET开发微信小程序(基础配置)

    1.微信小程序的必备Model public class WxConfig { /// <summary> /// 小程序的appId /// 登录小程序可以直接看到 /// </s ...

  2. DX11 Without DirectX SDK--01 DirectX11初始化

    回到 DirectX11--使用Windows SDK来进行开发 由于个人觉得龙书里面第4章提供的Direct3D 初始化项目封装得比较好,而且DirectX SDK Samples里面的初始化程序过 ...

  3. codeforces 983A Finite or not?

    题意: 判断一个分数在某一进制下是否为无限小数. 思路: 首先把这个分数约分,然后便是判断. 首先,一个分数是否为无限小数,与分子是无关的,只与分母有关. 然后,再来看看10进制的分数,可化为有限小数 ...

  4. Oracle 服务启动关闭

    有没有感觉到,自从装上Oracle之后,电脑变卡了?卡是正常的,oracle作为大型数据库软件,运行起来是非常吃内存的. 所以对于自用的电脑来说,不使用Oracle的时候,应该把Oracle的一系列服 ...

  5. mybatis设置callSettersOnNulls解决返回字段不全的问题

    Spring+MyBatis开发过程中,在xxMapper.xml配置文件进行select查询时resultType="map",如果要查询的字段是空值,在返回的map中会出现找不 ...

  6. Linux时间子系统之五:低分辨率定时器的原理和实现

    专题文档汇总目录 Notes:低精度timer在内核中的数据结构以及API接口:低精度timer精巧高效的分组,使用cascade进行定时器移位,组内Timer FIFO:低精度Timer的初始化流程 ...

  7. APNS导致消息丢失和发送效率原因

    http://blog.csdn.net/tlq1988/article/details/9612237 首先说明一下,本文只是介绍一些容易被开发者忽视,而导致性能低下问题.并不是介绍如何向苹果设备成 ...

  8. BloomFilter——大规模数据处理利器

    Bloom Filter是由Bloom在1970年提出的一种多哈希函数映射的快速查找算法.通常应用在一些需要快速判断某个元素是否属于集合,但是并不严格要求100%正确的场合. 一.实例 为了说明Blo ...

  9. python画出心形图

    程序员表达爱的方式真是多种多样.比如,用python来画一个心型,献给梦中的情人,代码如下: from turtle import * pensize(1) pencolor('red') fillc ...

  10. 【译】Flink + Kafka 0.11端到端精确一次处理语义的实现

    本文是翻译作品,作者是Piotr Nowojski和Michael Winters.前者是该方案的实现者. 原文地址是https://data-artisans.com/blog/end-to-end ...