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的 ...
随机推荐
- CodeForces - 1017D The Wu
题面在这里! 比较显而易见的暴力,O(2^(2n) + 2^n * 100) 就可以直接做了 #include<bits/stdc++.h> #define ll long long us ...
- 【BIT套主席树】COGS257-动态排名系统
题意同BZOJ1901,多组数据,数据范围也不一样.重新写一遍复习一下. #include<iostream> #include<cstdio> #include<cst ...
- Educational Codeforces Round 12 C. Simple Strings 贪心
C. Simple Strings 题目连接: http://www.codeforces.com/contest/665/problem/C Description zscoder loves si ...
- Swift 闭包反向传值
Swift中闭包反向传值 1.第二控制器申明一个闭包类型 typealias BackBlock = (String) -> Void 2.第二控制器定义一个变量 var BackBlockCl ...
- 开源数据库 H2, HSQLDB, DERBY, PostgreSQL, MySQL区别/对比图表( 附加翻译) h2数据库
开源数据库 H2, HSQLDB, DERBY, PostgreSQL, MySQL区别/对比图表 浪天涯博主翻译: referential integrity 参考完整性transactions 事 ...
- SLF4J和Logback日志框架详解
SLF4J和Logback日志框架详解 作者:chszs,转载需注明.博客主页:http://blog.csdn.net/chszs 本文讲述SLF4J和Logback日志框架. SLF4J是一套 ...
- 错误 1 error C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use . See online help for details.
出现这种警告的原因是因为我们没有使用安全的字符串处理函数.如果想屏蔽这种警告,可以使用: 还可以使用其它的方法,参考: https://www.cnblogs.com/gb2013/archive/2 ...
- 机器学习: 神经网络中的Error函数
利用神经网络做分类的时候,可以将神经网络看成一个mapping function,从输入到输出经过复杂的非线性变换.而输出的预测值与实际的目标值总是存在一定偏差的,一般利用这种偏差建立error 函数 ...
- Linux命令大全----系统管理相关命令
林炳文Evankaka原创作品.转载请注明出处http://blog.csdn.net/evankaka 摘要:本文主要讲了Linux命令大全----系统管理相关命令,并附有实例 一.安装 ...
- Python学习(六)模块 —— 标准模块
Python 标准模块 Python 带有一个标准模块库,并发布有独立的文档(库参考手册).对于程序员而言,标准库与语言本身同样重要,它好比一个百宝箱,能为各种常见的任务提供完美的解决方案. 这边简单 ...