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),此时就会产生一个问题,当我们的 ...
随机推荐
- WordPress存在DoS拒绝服务漏洞,推荐删除根目录下的xmlrpc.php
WordPress存在DoS拒绝服务漏洞,推荐删除根目录下的xmlrpc.php受影响的版本:WordPress 3.9.x-3.9.1WordPress 3.8.x-3.8.3WordPress 3 ...
- 在python3下使用OpenCV 显示图像
在Python3下用使用OpenCV比在C,C++里开发不止快捷一点点, 原型开发的时候蛮有用. 这里用的OpenCV 加载图片, 用的imshow画图 # -*- coding: utf-8 -*- ...
- P3008 [USACO11JAN]道路和飞机Roads and Planes
P3008 [USACO11JAN]道路和飞机Roads and Planes Dijkstra+Tarjan 因为题目有特殊限制所以不用担心负权的问题 但是朴素的Dijkstra就算用堆优化,也显然 ...
- zabbix监控之自定义item
zabbix安装完成后,当需要使用自定义脚本构建自定义item必须注意以下几点: 1.首先使用zabbix_get手动在zabbix-server服务端获取监控的默认的item值,如下: [root@ ...
- tensorflow之神经网络实现流程总结
tensorflow之神经网络实现流程总结 1.数据预处理preprocess 2.前向传播的神经网络搭建(包括activation_function和层数) 3.指数下降的learning_rate ...
- stm32时钟树讲解
1.管理好时钟,功耗才能更低
- Delphi XE5 for Android (七)
Delphi XE5下,TMainMenu和TPopupMenu不可用,那么如何支持Android的菜单呢? 查看了一些资料,不得要领,只是摸索着先模拟一下吧. 首先在窗体上放置一个TPanel,在其 ...
- 如何修改ls命令列出来的目录颜色
答:默认为蓝色,在黑色背景下无法看清楚,因此以以下方法修改; 1.往~/.bash_profile文件中添加以下内容: export LS_COLORS='no=00:fi=00:di=01;33:l ...
- P3066 [USACO12DEC]逃跑的BarnRunning Away From
目录 题目 思路 错误&&注意 代码 题目 luoguP3066 思路 虽说这个题目有多种做法,但 左偏树算法: 我们发现这个合并的时候并不好合并,因为存的值不是固定的 那我们是不是可 ...
- Wireshark分析RabbitMQ
消费者Code: using System; using System.Collections.Generic; using System.Linq; using System.Text; using ...