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),此时就会产生一个问题,当我们的 ...
随机推荐
- java和mysql之间的时间日期类型传递
摘自:http://blog.csdn.net/weinianjie1/article/details/6310770 MySQL(版本:5.1.50)的时间日期类型如下: datetime 8byt ...
- ELK学习笔记之CentOS 7下ELK(6.2.4)++LogStash+Filebeat+Log4j日志集成环境搭建
0x00 简介 现在的公司由于绝大部分项目都采用分布式架构,很早就采用ELK了,只不过最近因为额外的工作需要,仔细的研究了分布式系统中,怎么样的日志规范和架构才是合理和能够有效提高问题排查效率的. 经 ...
- 20145330 《网络对抗》 Web安全基础实践
20145330 <网络对抗> Web安全基础实践 1.实验后回答问题 (1)SQL注入攻击原理,如何防御 SQL注入,就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字 ...
- Java 多线程中的任务分解机制-ForkJoinPool,以及CompletableFuture
ForkJoinPool的优势在于,可以充分利用多cpu,多核cpu的优势,把一个任务拆分成多个“小任务”,把多个“小任务”放到多个处理器核心上并行执行:当多个“小任务”执行完成之后,再将这些执行结果 ...
- Slf4j+LogBack使用参考
博文参考: 最简例子:https://blog.csdn.net/johnson_moon/article/details/77532583 Web中配置:https://blog.csdn.net/ ...
- 【镜像地址】Maven地址列表
1.国内OSChina提供的镜像,非常不错 <mirror> <id>CN</id> <name>OSChina Central</name> ...
- 基于nodejs环境,用npm简单搭建一个本地服务器Live-server的使用
用npm 或者cnpm进行全局安装 cnpm install -g live-server 运行后就可以直接给你虚拟一个本地服务器,而且还可以热同步 运行 live-server
- 【Coursera】Fourth Week(1)
1994: year of the web (1)网景(Netscape)成立. (2)www conference 在CERN 举办. (3)www conference 在芝加哥举办. (4)十月 ...
- hdoj-1005-Number Sequences
题目:Number Sequences 代码: #include<stdlib.h> #include<iostream> #include<cstdio> #in ...
- NOI 4977 怪盗基德的滑翔翼(LIS)
http://noi.openjudge.cn/ch0206/4977/ 描述: 怪盗基德是一个充满传奇色彩的怪盗,专门以珠宝为目标的超级盗窃犯.而他最为突出的地方,就是他每次都能逃脱中村警部的重重围 ...