vue的全家桶
自定义指令
<div v-demo="{ color: 'white', text: 'hello!' }"></div>
Vue.directive('demo', function (el, binding) {
console.log(binding.value.color) // => "white"
console.log(binding.value.text) // => "hello!"
});
项目中自定义滚动指令(main.js)
Vue.directive('scroll',{
bind:function(el,binding){
window.addEventListener('scroll',() => {
let fnc = binding.value; // 该项目中绑定到函数
fnc(el);
})
}
})
组件中使用
<div class="..." v-scroll="showTop">
...
<div @click="gotop" class="go-top" :class="goTop?'active':''"></div>
...
</div>
methods: {
gotop: function() {
let speed = 10;
let timer = setInterval(function(){
if (document.body.scrollTop > 0){
document.body.scrollTop = document.body.scrollTop - speed > 0 ? document.body.scrollTop - speed : 0;
speed += 20;
} else {
clearInterval(timer);
}
}, 16)
},
showTop: function() {
if(document.body.scrollTop > 200){
this.goTop = true
} else {
this.goTop = false
}
},
}
Modules
使用单一状态树,导致应用的所有状态集中到一个很大的对象。但是,当应用变得很大时,store 对象会变得臃肿不堪。为了解决以上问题,Vuex 允许我们将 store 分割到模块(module)。每个模块拥有自己的 state、mutation、action、getters。
cinema-modules
import * as types from '../types'
const state = {...};
const actions = {...};
const getters = {...};
const mutations = {...};
export default {
state,
actions,
getters,
mutations
}
index.js
import Vue from 'vue'
import Vuex from 'vuex'
import cinema from './modules/cinema' Vue.use(Vuex) const store = new Vuex.Store({
modules: {
cinema
},
}) export default store;
跨域问题
有时候,本地使用webpack开启一个node的dev端口,项目中使用vuejs去访问别人家的api,
比如豆瓣或者其他的api,不使用jsonp肯定就会报跨域的问题。
解决方法:使用http-proxy-middleware插件
在vue-cli生成的build/dev-server.js中添加
app.use('/api',proxyMiddleware({
target:'http://www.example.org',
changeOrigin:true
}))
路由
响应路由参数的变化
当使用路由参数时,例如从 /user/foo 导航到 user/bar,原来的组件实例会被复用。因为两个路由都渲染同个组件,比起销毁再创建,复用则显得更加高效。 不过,这也意味着组件的生命周期钩子不会再被调用。
复用组件时,想对路由参数的变化作出响应的话,你可以简单地 watch(监测变化) $route 对象。
const User = {
template: '...',
watch: {
'$route' (to, from) {
// 对路由变化作出响应...
}
}
}
路由常用API
| 表达式 | 返回类型 | 意义 |
|---|---|---|
| $route.name | String | 当前路由的名称 |
| $route.path | String | 对应当前路由的路径,总是解析为绝对路径 |
| $route.params | Object | 一个 key/value 对象,包含了 动态片段 和 全匹配片段 |
| $route.query | Object | 一个 key/value 对象,表示 URL 查询参数。/foo?user=1,$route.query.user == 1 |
小结
- 每个组件只能包含一个根节点
- actions弥补了mutations不能异步操作的缺陷
参考:http://www.jianshu.com/p/25379164a9a6
vue的全家桶的更多相关文章
- 什么是vue的全家桶
vue.js有著名的全家桶系列,包含了vue-router,vuex, vue-resource,再加上构建工具vue-cli,就是一个完整的vue项目的核心构成.
- 前端框架之Vue(10)-全家桶简单使用实例
vue-router官方文档 vuex官方文档 安装 npm install vue-router --save 使用实例 vue-router初使用(webpack-simple模板) 1.切换到指 ...
- vue假全家桶升级方式,形成类似于小程序的路径管理(新增require-css与require-text)
1.路径布局大致就是这样,完全模拟小程序,主要是靠require来做到的 2.首先index.html是这样的(配置js和css没有用requireJs主要是方便而且载入什么组件比较清晰) <! ...
- 让我们用Vue cli全家桶搭建项目
一般项目都会用到这几个,这里不在详细介绍概念,只是简单的使用.一.搭建cli 1.事先安装好cnpm(淘宝镜像) npm install -g cnpm --registry=https://regi ...
- Vue2全家桶之一:vue-cli(vue脚手架)超详细教程
本文转载于:https://www.jianshu.com/p/32beaca25c0d 都说Vue2简单上手容易,的确,看了官方文档确实觉得上手很快,除了ES6语法和webpack的配置让你感到 ...
- [转]vue全面介绍--全家桶、项目实例
慢慢了解vue及其全家桶的过程 原文http://blog.csdn.net/zhenghao35791/article/details/67639415 简介 “简单却不失优雅,小巧而不乏大匠”. ...
- day 84 Vue学习四之过滤器、钩子函数、路由、全家桶等
本节目录 一 vue过滤器 二 生命周期的钩子函数 三 vue的全家桶 四 xxx 五 xxx 六 xxx 七 xxx 八 xxx 一 Vue的过滤器 1 moment.js 在这里我们先介绍一个 ...
- day 83 Vue学习四之过滤器、钩子函数、路由、全家桶等
Vue学习四之过滤器.钩子函数.路由.全家桶等 本节目录 一 vue过滤器 二 生命周期的钩子函数 三 vue的全家桶 四 xxx 五 xxx 六 xxx 七 xxx 八 xxx 一 Vue的过滤 ...
- vue2入坑随记(一)-- 初始全家桶
都说Vue2简单,上手容易,但小马过河,自己试了才晓得,除了ES6语法和webpack的配置让你感到陌生,重要的是思路的变换,以前随便拿全局变量和修改dom的锤子不能用了,变换到关注数据本身.vue的 ...
随机推荐
- UVA11019 Martix Matcher --- AC自动机
UVA11019 Martix Matcher 题目描述: 给定一个\(n*m\)的文本串 问一个\(x*y\)的模式串出现的次数 AC自动机的奇妙使用 将\(x*y\)的模式串拆分成x个串,当x个串 ...
- 2017-2018-1 JAVA实验站 冲刺 day05
2017-2018-1 JAVA实验站 冲刺 day05 各个成员今日完成的任务 小组成员 今日工作 完成进度 张韵琪 进行工作总结 100% 齐力锋 找按钮音乐 100% 张浩林 写博客 100% ...
- bzoj1036 count 树链剖分或LCT
这道题很久以前用树链剖分写的,最近在学LCT ,就用LCT再写了一遍,也有一些收获. 因为这道题点权可以是负数,所以在update时就要注意一下,因为平时我的0节点表示空,它的点权为0,这样可以处理点 ...
- Swift 自定义打印方法
Swift 自定义打印方法 代码如下 // MARK:- 自定义打印方法 func MLLog<T>(_ message : T, file : String = #file, funcN ...
- How to put a relative path for a DLL statically loaded?
How to put a relative path for a DLL statically loaded? I have a DLL made in Delphi 7/Windows XP tha ...
- HelloWorld 和相关设置
写这篇文章的初衷很简单,就是想再一次证明 IntelliJ IDEA 对于 Java 开发人员来说,确实比 eclipse 要好用得多,鉴于目前市面上关于 IntelliJ IDEA 的教程比较少,叙 ...
- 软件版本GA,RC,alpha,beta,Build 含义
(1)RC:(Release Candidate) Candidate是候选人的意思,用在软件上就是候选版本.Release.Candidate.就是发行候选版本.和Beta版最大的差别在于Beta阶 ...
- JS实现经典生产者消费者模型
因为node使用单线程的方式实现,所以,在此使用定时器timer取代线程thread来实现生产者消费者模型. 代码例如以下: var sigintCount = 0; var productArray ...
- Go:《Go语言 云动力》
背景 中秋快速的读了一遍<Go语言 云动力>,对Go有一下几点感觉: 在静态类型和动态类型之间取得了非常好的平衡,隐式接口实现会被后续的语言借鉴(希望C#能借鉴一下). 缺乏异常处理机制, ...
- 一次SQL查询语句的优化
1.项目中之前的"我关注的拍品列表"需要添加筛选功能,因为目前显示的关注的拍品太多没有进行分类,用户体验差. 2.添加筛选条件之后,可以筛选出“未开始”“进行中”“已结束”三种情况 ...