vue新手入门指导,一篇让你学会vue技术栈,本人初学时候的文档
今天整理文档突然发现了一份md文档,打开一看 瞬间想起当年学习vue的艰难路,没人指导全靠自己蒙,下面就是md文档内容,需要的小伙伴可以打开个在线的md编译器看一看,我相信不管是新人还是老人 入门总是可以的(这只是初学时候做的笔记,如果有哪里写错了还望联系我修改,免得误导其他新人,本人qq:421217189)
# vuex
##### 五大模块:
## state 数据
```
在vuex中调用:state.xxx; 组件内使用:this.$store.state.xxxx mapstate函数:
computed: mapState([
// 映射 this.count 为 store.state.count
'count'
])
``` ## mutation 同步方法
```
在vuex中调用 store.commit('func',{arguments}) 第一个为方法名,第二个为载荷(参数),为一个对象。
在组件调用 this.$store.commit('func',{arguments}) 同上,
mapMutation:
methods:{
...mapMutation([
"func",
func1:"func"
])
}
``` ## action 异步方法
```
异步方法调用同步方法,而不是直接去更改state的值!
例如:
mutation:{
mutationfunc(){
//dosomething
}
}
action:{
/* actionfun(store){
store.commit('mutationfunc')
}*/
简写:
es6解构
actionfun({commit}){
commit("mutationfunc");
}
} action 触发方式:
store里面:store.dispatch('actionfun');
组件里面:this.$store.dispatch('actionfun');
mapActions:
methods:{
...mapActions([
'actionfun',
func:"actionfun"
])
}
``` ## getters 过滤
```
与vue过滤属性几乎一致:调用方法:
store:store.getters.doneTodos
组件里面:this.$store.getters.doneTodos
mapGetters:
computed:{
...mapGetters([
'getters',
othergetters:"getters",
])
}
```
## Module vuex分模块
```
例子:
new Vuex.Store({
modules: {
a: moduleA,
b: moduleB
}
})
调用:store.state.a; 可以获得moduleA的状态
组件内 this.$store.state.a;
对于模块内部的 mutation 和 getter,接收的第一个参数是模块的局部状态对象。
对于模块内部的 action,局部状态通过 context.state 暴露出来,根节点为context.rootState:
对于模块内部的 getter,根节点状态会作为第三个参数暴露出来
默认情况下: action、mutation 和 getter 是注册在全局命名空间的(也就是调用时候和全局一样调用),可以通过namespaced: true(在module模块命名空间内加),设置所有action、mutation、getter设置为命名空间的。通过调用命名空间才可以触发,
在命名空间模块内访问全局内容(Global Assets)(官网)
```
## 模块动态注册的方法:
```
// 注册模块 `myModule`
store.registerModule('myModule', {
// ...
}) // 注册嵌套模块 `nested/myModule`
store.registerModule(['nested', 'myModule'], {
// ...
})
之后就可以通过 store.state.myModule 和 store.state.nested.myModule 访问模块的状态。 ```
## 模块卸载的方法:store.unregisterModule(moduleName)
## vuex api:https://vuex.vuejs.org/zh-cn/api.html -
-
-
-
- # vue-router :
## 动态路由匹配
```
使用冒号
例子:
const router = new VueRouter({
router:[
{
path:'/index/:id',component:index,
}
]
}) 可以通过beforeRouteUpdate(to,from,next)钩子来获取路由变化 ```
## 嵌套路由:
```
例子:
const router = new VueRouter({
router:[
{
path:'/father',
component:index,
children:[
{
//地址是:/father/children
path:'children',
component:children,
}
]
}
]
})
以 / 开头的嵌套路径会被当作根路径。
```
## 操作浏览器地址
```
router.push 组件内 this.$router.push 导航到指定的url(会在历史记录中添加当前url)
router.replace 组件内 this.$router.replace 导航到指定的url(不会在历史记录中添加当前url)
router.go 组件内 this.$router.go 后退或者前进多少步 以上方法同js中window.history
```
## 命名视图
```
<router-view name = "a"/>
可以在路由中设置渲染到指定视图
const router = new VueRouter({
router :[
{
path:"/zhangsan",
component:[
a:A-view,
default:default-view,
]
}
]
})
```
## History 模式: mode: 'history' ## vue-router 守卫(生命周期函数):
```
全局导航:前面都需要加router
一、beforeEach : 前置守卫;参数:
to: Route: 即将要进入的目标 路由对象
from: Route: 当前导航正要离开的路由
next: Function: 一定要调用该方法来 resolve 这个钩子。执行效果依赖 next 方法的调用参数。
二、beforeResolve 在所有组件内守卫和异步路由组件被解析之后
三、afterEach 全局后置钩子 组件内导航:
beforeRouteEnter:在实例创建以前调用,
beforeRouteUpdate:在当前路由改变,但是该组件被复用时调用
beforeRouteLeave 导航离开该组件的对应路由时调用
```
## 完整的导航解析流程 * 导航被触发
* 在失活的组件里调用离开守卫。
* 调用全局的 beforeEach 守卫。(beforeEach)
* 在重用的组件里调用 beforeRouteUpdate 守卫 (2.2+)。
* 在路由配置里调用 beforeEnter。
* 解析异步路由组件。
* 在被激活的组件里调用 beforeRouteEnter。
* 调用全局的 beforeResolve 守卫 (2.5+)。
* 导航被确认。
* 调用全局的 afterEach 钩子。
* 触发 DOM 更新。
* 用创建好的实例调用 beforeRouteEnter 守卫中传给 next 的回调函数。
## 滚动行为
```
const router = new VueRouter({
routes: [...],
scrollBehavior (to, from, savedPosition) {
// return 期望滚动到哪个的位置
return { x: 0, y: 0 }
}
})
```
## 路由懒加载
```
const Foo = () => import('./Foo.vue')
```
## sass转化
```
npm install node-sass --save-dev
npm install sass-loader --save-dev
{
test: /\.scss$/,
loaders: ["style", "css", "sass"]
},
```
## vue+axios
```
在vue中axios不支持use可以使用一下两种方法进行写入:
1\Vue.prototype.$http = axios 2\在 Vuex 中封装
actions: {
// 封装一个 ajax 方法
saveForm (context) {
axios({
method: 'post',
url: '/user',
data: context.state.test02
})
}
} axios.get(url[, config])
axios.post(url[, data[, config]])
axios.request(config)
axios.delete(url[, config])
axios.head(url[, config])
axios.put(url[, data[, config]])
axios.patch(url[, data[, config]])
//多重并发
function getUserAccount(){
return axios.get('/user/12345');
} function getUserPermissions(){
return axios.get('/user/12345/permissions');
} axios.all([getUerAccount(),getUserPermissions()])
.then(axios.spread(function(acc,pers){
//两个请求现在都完成
}));
//拦截器 axios.interceptors.request.use(function(config){
//在请求发送之前做一些事
return config;
},function(error){
//当出现请求错误是做一些事
return Promise.reject(error);
}); //添加一个返回拦截器
axios.interceptors.response.use(function(response){
//对返回的数据进行一些处理
return response;
},function(error){
//对返回的错误进行一些处理
return Promise.reject(error);
});
```
## 预写: vue-devtools google调试vue插件
```
1、github下载源码(无法翻墙的做法),
https://github.com/vuejs/vue-devtools
2、下载好后进入vue-devtools-master工程 执行cnpm install, 下载依赖
3、执行npm run build,编译源程序。
4、修改shells/chrome目录下的mainifest.json 中的persistent为true
5、打开谷歌浏览器的设置--->扩展程序,并勾选开发者模式
6、然后将刚刚编译后的工程中的shells目录下,chrome的整个文件夹直接拖拽到当前浏览器中,并选择启用,即可将插件安装到浏览器。
7、入口文件加上Vue.config.devtools = true 8、打开一个已有的vue项目,运行项目,然后在浏览器中--->设置--->更多工具--->开发者工具,进入调试模式,点击vue
```
## github提交项目流程
```
1 、第一步: 建立本地仓库cd到你的本地项目根目录下,执行git命令
2、git init
3、git add .
4、git commit -m “注释"
5、git log(如果有则添加缓存区成功)
6、git show (检测是否添加的对)
7、git remote add origin github地址
8、git push -f origin master
```
## github增加内容
```
1、git add .
2、git commit
3、git push -f origin master
```
vue新手入门指导,一篇让你学会vue技术栈,本人初学时候的文档的更多相关文章
- 新手入门指导:Vue 2.0 的建议学习顺序
起步 1. 扎实的 JavaScript / HTML / CSS 基本功.这是前置条件. 2. 通读官方教程 (guide) 的基础篇.不要用任何构建工具,就只用最简单的 <script> ...
- Vue开发入门看这篇文章就够了
摘要: 很多值得了解的细节. 原文:Vue开发看这篇文章就够了 作者:Random Fundebug经授权转载,版权归原作者所有. 介绍 Vue 中文网 Vue github Vue.js 是一套构建 ...
- vue新手入门之使用vue框架搭建用户登录注册案例,手动搭建webpack+Vue项目(附源码,图文详解,亲测有效)
前言 本篇随笔主要写了手动搭建一个webpack+Vue项目,掌握相关loader的安装与使用,包括css-loader.style-loader.vue-loader.url-loader.sass ...
- Vue新手入门教程
谈谈我对Vue的理解 vue就是前端上的Java,前端上的C#.有个前端的虚拟DOM引擎,设计理念和Java,C#类似.我们只需要告诉DOM应该显示什么,而不用去操作DOM元素. 如何引用? 下面是一 ...
- vue新手入门——vue-cli搭建
首先说明,以下内容vue官网都有文档,如果觉得麻烦啰嗦,请移步至 安装-vue.js . 准备工作: 1.下载并安装node环境,一般情况下安装好node之后,npm也会安装好.具体安装的话,百度大概 ...
- vue新手入门——谈谈理解
毕业到现在大概4个月了,从java开发慢慢转到前端开发(其实是因为公司前端人不够),然后开始接触vue.所以我也只是一只小菜鸟. 首先附上vue的官网:vue官网 然后附上一些常用的vue框架,组件之 ...
- Spring Boot从入门到精通(十一)集成Swagger框架,实现自动生成接口文档
Swagger是一个规范和完整的框架,用于生成.描述.调用和可视化 RESTful 风格的 Web 服务.Swagger 是一组开源项目,其中主要要项目如下: Swagger-tools:提供各种与S ...
- iOS开发,新手入门指导
在做了近两年wp,安卓开发之后,某一天突然决定投身iOS的开发之中. 因为一直用的mac,做wp开发的时候都用双系统,vs开久了,就会比较烫,这点让人不爽.后来更多地做安卓,直接mac下开发,很舒适的 ...
- ASP.NET MVC4 新手入门教程特别篇之一----Code First Migrations更新数据库结构(数据迁移)修改Entity FrameWork 数据结构(不删除数据)
背景 code first起初当修改model后,要持久化至数据库中时,总要把原数据库给删除掉再创建(DropCreateDatabaseIfModelChanges),此时就会产生一个问题,当我们的 ...
随机推荐
- 百度地图api通过地址显示地图,白名单
百度地图api通过地址显示地图,白名单 http://developer.baidu.com/map/jsdemo.htm#i7_1?qq-pf-to=pcqq.c2c---------------- ...
- Q_DECLARE_PRIVATE与Q_DECLARE_PUBLIC
Q_DECLARE_PRIVATE与Q_DECLARE_PUBLIC 这两个宏在Qt的源码中随处可见,重要性不言而喻.在 部落格的 Inside Qt Series 系列文章中,他用了3篇文章来讲这个 ...
- 通过Java 线程堆栈进行性能瓶颈分析
改善性能意味着用更少的资源做更多的事情.为了利用并发来提高系统性能,我们需要更有效的利用现有的处理器资源,这意味着我们期望使 CPU 尽可能出于忙碌状态(当然,并不是让 CPU 周期出于应付无用计算, ...
- Unity3D之预设
预设的两个特性: 1.重用性.可以使我们快速方便的创建大量的重复性资源.这种创建是通过预设的实例化Instance操作来完成的 在Hierarchy视图中将实例物理添加到Assests中,此时图标 ...
- 20145118 《Java程序设计》课程总结
20145118 <Java程序设计>课程总结 每周读书笔记连接汇总 假期笔记 http://www.cnblogs.com/cy1123/p/5224305.html 第一周读书笔记 h ...
- tf.reduce_sum tensorflow维度上的操作
tensorflow中有很多在维度上的操作,本例以常用的tf.reduce_sum进行说明.官方给的api reduce_sum( input_tensor, axis=None, keep_dims ...
- logistic回归和softmax回归
logistic回归 在 logistic 回归中,我们的训练集由 个已标记的样本构成:.由于 logistic 回归是针对二分类问题的,因此类标记 . 假设函数(hypothesis functi ...
- cogs 362. [CEOI2004]锯木厂选址
★★★ 输入文件:two.in 输出文件:two.out 简单对比 时间限制:0.1 s 内存限制:32 MB 从山顶上到山底下沿着一条直线种植了n棵老树.当地的政府决定把他们砍下来. ...
- 【前端】javascript+jquery实现手风琴式的滚动banner或产品展示图
实现效果 实现步骤 // 鼠标放入到li中该盒子变宽,其他盒子变窄,鼠标移开大盒子,恢复原样 // 实现步骤 // 1. 给li添加背景 // 2. 绑定onmouseover事件,鼠标放入到li中, ...
- Linux虚拟内存和物理地址的理解【转】
本文转载自:http://blog.csdn.net/dlutbrucezhang/article/details/9058583 在多任务操作系统中的每一个进程都运行在一个属于它自己的内存沙盘中.这 ...