今天整理文档突然发现了一份md文档,打开一看 瞬间想起当年学习vue的艰难路,没人指导全靠自己蒙,下面就是md文档内容,需要的小伙伴可以打开个在线的md编译器看一看,我相信不管是新人还是老人  入门总是可以的(这只是初学时候做的笔记,如果有哪里写错了还望联系我修改,免得误导其他新人,本人qq:421217189)

  1. # vuex
  2. ##### 五大模块:
  3. ## state 数据
  4. ```
  5. 在vuex中调用:state.xxx;
  6.  
  7. 组件内使用:this.$store.state.xxxx
  8.  
  9. mapstate函数:
  10. computed: mapState([
  11. // 映射 this.count 为 store.state.count
  12. 'count'
  13. ])
  14. ```
  15.  
  16. ## mutation 同步方法
  17. ```
  18. 在vuex中调用 store.commit('func',{arguments}) 第一个为方法名,第二个为载荷(参数),为一个对象。
  19. 在组件调用 this.$store.commit('func',{arguments}) 同上,
  20. mapMutation:
  21. methods:{
  22. ...mapMutation([
  23. "func",
  24. func1:"func"
  25. ])
  26. }
  27. ```
  28.  
  29. ## action 异步方法
  30. ```
  31. 异步方法调用同步方法,而不是直接去更改state的值!
  32. 例如:
  33. mutation:{
  34. mutationfunc(){
  35. //dosomething
  36. }
  37. }
  38. action:{
  39. /* actionfun(store){
  40. store.commit('mutationfunc')
  41. }*/
  42. 简写:
  43. es6解构
  44. actionfun({commit}){
  45. commit("mutationfunc");
  46. }
  47. }
  48.  
  49. action 触发方式:
  50. store里面:store.dispatch('actionfun');
  51. 组件里面:this.$store.dispatch('actionfun');
  52. mapActions:
  53. methods:{
  54. ...mapActions([
  55. 'actionfun',
  56. func:"actionfun"
  57. ])
  58. }
  59. ```
  60.  
  61. ## getters 过滤
  62. ```
  63. 与vue过滤属性几乎一致:调用方法:
  64. store:store.getters.doneTodos
  65. 组件里面:this.$store.getters.doneTodos
  66. mapGetters:
  67. computed:{
  68. ...mapGetters([
  69. 'getters',
  70. othergetters:"getters",
  71. ])
  72. }
  73. ```
  74. ## Module vuex分模块
  75. ```
  76. 例子:
  77. new Vuex.Store({
  78. modules: {
  79. a: moduleA,
  80. b: moduleB
  81. }
  82. })
  83. 调用:store.state.a; 可以获得moduleA的状态
  84. 组件内 this.$store.state.a;
  85. 对于模块内部的 mutation 和 getter,接收的第一个参数是模块的局部状态对象。
  86. 对于模块内部的 action,局部状态通过 context.state 暴露出来,根节点为context.rootState:
  87. 对于模块内部的 getter,根节点状态会作为第三个参数暴露出来
  88. 默认情况下: action、mutation 和 getter 是注册在全局命名空间的(也就是调用时候和全局一样调用),可以通过namespaced: true(在module模块命名空间内加),设置所有action、mutation、getter设置为命名空间的。通过调用命名空间才可以触发,
  89. 在命名空间模块内访问全局内容(Global Assets)(官网)
  90. ```
  91. ## 模块动态注册的方法:
  92. ```
  93. // 注册模块 `myModule`
  94. store.registerModule('myModule', {
  95. // ...
  96. })
  97.  
  98. // 注册嵌套模块 `nested/myModule`
  99. store.registerModule(['nested', 'myModule'], {
  100. // ...
  101. })
  102. 之后就可以通过 store.state.myModule 和 store.state.nested.myModule 访问模块的状态。
  103.  
  104. ```
  105. ## 模块卸载的方法:store.unregisterModule(moduleName)
  106. ## vuex api:https://vuex.vuejs.org/zh-cn/api.html
  107.  
  108. -
  109. -
  110. -
  111. -
  112. -
  113.  
  114. # vue-router :
  115. ## 动态路由匹配
  116. ```
  117. 使用冒号
  118. 例子:
  119. const router = new VueRouter({
  120. router:[
  121. {
  122. path:'/index/:id',component:index,
  123. }
  124. ]
  125. })
  126.  
  127. 可以通过beforeRouteUpdate(to,from,next)钩子来获取路由变化
  128.  
  129. ```
  130. ## 嵌套路由:
  131. ```
  132. 例子:
  133. const router = new VueRouter({
  134. router:[
  135. {
  136. path:'/father',
  137. component:index,
  138. children:[
  139. {
  140. //地址是:/father/children
  141. path:'children',
  142. component:children,
  143. }
  144. ]
  145. }
  146. ]
  147. })
  148. 以 / 开头的嵌套路径会被当作根路径。
  149. ```
  150. ## 操作浏览器地址
  151. ```
  152. router.push 组件内 this.$router.push 导航到指定的url(会在历史记录中添加当前url)
  153. router.replace 组件内 this.$router.replace 导航到指定的url(不会在历史记录中添加当前url)
  154. router.go 组件内 this.$router.go 后退或者前进多少步
  155.  
  156. 以上方法同js中window.history
  157. ```
  158. ## 命名视图
  159. ```
  160. <router-view name = "a"/>
  161. 可以在路由中设置渲染到指定视图
  162. const router = new VueRouter({
  163. router :[
  164. {
  165. path:"/zhangsan",
  166. component:[
  167. a:A-view,
  168. default:default-view,
  169. ]
  170. }
  171. ]
  172. })
  173. ```
  174. ## History 模式: mode: 'history'
  175.  
  176. ## vue-router 守卫(生命周期函数):
  177. ```
  178. 全局导航:前面都需要加router
  179. 一、beforeEach : 前置守卫;参数:
  180. to: Route: 即将要进入的目标 路由对象
  181. from: Route: 当前导航正要离开的路由
  182. next: Function: 一定要调用该方法来 resolve 这个钩子。执行效果依赖 next 方法的调用参数。
  183. 二、beforeResolve 在所有组件内守卫和异步路由组件被解析之后
  184. 三、afterEach 全局后置钩子
  185.  
  186. 组件内导航:
  187. beforeRouteEnter:在实例创建以前调用,
  188. beforeRouteUpdate:在当前路由改变,但是该组件被复用时调用
  189. beforeRouteLeave 导航离开该组件的对应路由时调用
  190. ```
  191. ## 完整的导航解析流程
  192.  
  193. * 导航被触发
  194. * 在失活的组件里调用离开守卫。
  195. * 调用全局的 beforeEach 守卫。(beforeEach)
  196. * 在重用的组件里调用 beforeRouteUpdate 守卫 (2.2+)。
  197. * 在路由配置里调用 beforeEnter
  198. * 解析异步路由组件。
  199. * 在被激活的组件里调用 beforeRouteEnter
  200. * 调用全局的 beforeResolve 守卫 (2.5+)。
  201. * 导航被确认。
  202. * 调用全局的 afterEach 钩子。
  203. * 触发 DOM 更新。
  204. * 用创建好的实例调用 beforeRouteEnter 守卫中传给 next 的回调函数。
  205. ## 滚动行为
  206. ```
  207. const router = new VueRouter({
  208. routes: [...],
  209. scrollBehavior (to, from, savedPosition) {
  210. // return 期望滚动到哪个的位置
  211. return { x: 0, y: 0 }
  212. }
  213. })
  214. ```
  215. ## 路由懒加载
  216. ```
  217. const Foo = () => import('./Foo.vue')
  218. ```
  219. ## sass转化
  220. ```
  221. npm install node-sass --save-dev
  222. npm install sass-loader --save-dev
  223. {
  224. test: /\.scss$/,
  225. loaders: ["style", "css", "sass"]
  226. },
  227. ```
  228. ## vue+axios
  229. ```
  230. 在vue中axios不支持use可以使用一下两种方法进行写入:
  231. 1\Vue.prototype.$http = axios
  232.  
  233. 2\在 Vuex 中封装
  234. actions: {
  235. // 封装一个 ajax 方法
  236. saveForm (context) {
  237. axios({
  238. method: 'post',
  239. url: '/user',
  240. data: context.state.test02
  241. })
  242. }
  243. }
  244.  
  245. axios.get(url[, config])
  246. axios.post(url[, data[, config]])
  247. axios.request(config)
  248. axios.delete(url[, config])
  249. axios.head(url[, config])
  250. axios.put(url[, data[, config]])
  251. axios.patch(url[, data[, config]])
  252. //多重并发
  253. function getUserAccount(){
  254. return axios.get('/user/12345');
  255. }
  256.  
  257. function getUserPermissions(){
  258. return axios.get('/user/12345/permissions');
  259. }
  260.  
  261. axios.all([getUerAccount(),getUserPermissions()])
  262. .then(axios.spread(function(acc,pers){
  263. //两个请求现在都完成
  264. }));
  265. //拦截器
  266.  
  267. axios.interceptors.request.use(function(config){
  268. //在请求发送之前做一些事
  269. return config;
  270. },function(error){
  271. //当出现请求错误是做一些事
  272. return Promise.reject(error);
  273. });
  274.  
  275. //添加一个返回拦截器
  276. axios.interceptors.response.use(function(response){
  277. //对返回的数据进行一些处理
  278. return response;
  279. },function(error){
  280. //对返回的错误进行一些处理
  281. return Promise.reject(error);
  282. });
  283. ```
  284. ## 预写: vue-devtools google调试vue插件
  285. ```
  286. 1、github下载源码(无法翻墙的做法),
  287. https://github.com/vuejs/vue-devtools
  288. 2、下载好后进入vue-devtools-master工程 执行cnpm install, 下载依赖
  289. 3、执行npm run build,编译源程序。
  290. 4、修改shells/chrome目录下的mainifest.json 中的persistent为true
  291. 5、打开谷歌浏览器的设置--->扩展程序,并勾选开发者模式
  292. 6、然后将刚刚编译后的工程中的shells目录下,chrome的整个文件夹直接拖拽到当前浏览器中,并选择启用,即可将插件安装到浏览器。
  293. 7、入口文件加上Vue.config.devtools = true
  294.  
  295. 8、打开一个已有的vue项目,运行项目,然后在浏览器中--->设置--->更多工具--->开发者工具,进入调试模式,点击vue
  296. ```
  297. ## github提交项目流程
  298. ```
  299. 1 、第一步: 建立本地仓库cd到你的本地项目根目录下,执行git命令
  300. 2、git init
  301. 3、git add .
  302. 4、git commit -m “注释"
  303. 5、git log(如果有则添加缓存区成功)
  304. 6、git show (检测是否添加的对)
  305. 7、git remote add origin github地址
  306. 8、git push -f origin master
  307. ```
  308. ## github增加内容
  309. ```
  310. 1、git add .
  311. 2、git commit
  312. 3、git push -f origin master
  313. ```

vue新手入门指导,一篇让你学会vue技术栈,本人初学时候的文档的更多相关文章

  1. 新手入门指导:Vue 2.0 的建议学习顺序

    起步 1. 扎实的 JavaScript / HTML / CSS 基本功.这是前置条件. 2. 通读官方教程 (guide) 的基础篇.不要用任何构建工具,就只用最简单的 <script> ...

  2. Vue开发入门看这篇文章就够了

    摘要: 很多值得了解的细节. 原文:Vue开发看这篇文章就够了 作者:Random Fundebug经授权转载,版权归原作者所有. 介绍 Vue 中文网 Vue github Vue.js 是一套构建 ...

  3. vue新手入门之使用vue框架搭建用户登录注册案例,手动搭建webpack+Vue项目(附源码,图文详解,亲测有效)

    前言 本篇随笔主要写了手动搭建一个webpack+Vue项目,掌握相关loader的安装与使用,包括css-loader.style-loader.vue-loader.url-loader.sass ...

  4. Vue新手入门教程

    谈谈我对Vue的理解 vue就是前端上的Java,前端上的C#.有个前端的虚拟DOM引擎,设计理念和Java,C#类似.我们只需要告诉DOM应该显示什么,而不用去操作DOM元素. 如何引用? 下面是一 ...

  5. vue新手入门——vue-cli搭建

    首先说明,以下内容vue官网都有文档,如果觉得麻烦啰嗦,请移步至 安装-vue.js . 准备工作: 1.下载并安装node环境,一般情况下安装好node之后,npm也会安装好.具体安装的话,百度大概 ...

  6. vue新手入门——谈谈理解

    毕业到现在大概4个月了,从java开发慢慢转到前端开发(其实是因为公司前端人不够),然后开始接触vue.所以我也只是一只小菜鸟. 首先附上vue的官网:vue官网 然后附上一些常用的vue框架,组件之 ...

  7. Spring Boot从入门到精通(十一)集成Swagger框架,实现自动生成接口文档

    Swagger是一个规范和完整的框架,用于生成.描述.调用和可视化 RESTful 风格的 Web 服务.Swagger 是一组开源项目,其中主要要项目如下: Swagger-tools:提供各种与S ...

  8. iOS开发,新手入门指导

    在做了近两年wp,安卓开发之后,某一天突然决定投身iOS的开发之中. 因为一直用的mac,做wp开发的时候都用双系统,vs开久了,就会比较烫,这点让人不爽.后来更多地做安卓,直接mac下开发,很舒适的 ...

  9. ASP.NET MVC4 新手入门教程特别篇之一----Code First Migrations更新数据库结构(数据迁移)修改Entity FrameWork 数据结构(不删除数据)

    背景 code first起初当修改model后,要持久化至数据库中时,总要把原数据库给删除掉再创建(DropCreateDatabaseIfModelChanges),此时就会产生一个问题,当我们的 ...

随机推荐

  1. WordPress存在DoS拒绝服务漏洞,推荐删除根目录下的xmlrpc.php

    WordPress存在DoS拒绝服务漏洞,推荐删除根目录下的xmlrpc.php受影响的版本:WordPress 3.9.x-3.9.1WordPress 3.8.x-3.8.3WordPress 3 ...

  2. 在python3下使用OpenCV 显示图像

    在Python3下用使用OpenCV比在C,C++里开发不止快捷一点点, 原型开发的时候蛮有用. 这里用的OpenCV 加载图片, 用的imshow画图 # -*- coding: utf-8 -*- ...

  3. P3008 [USACO11JAN]道路和飞机Roads and Planes

    P3008 [USACO11JAN]道路和飞机Roads and Planes Dijkstra+Tarjan 因为题目有特殊限制所以不用担心负权的问题 但是朴素的Dijkstra就算用堆优化,也显然 ...

  4. zabbix监控之自定义item

    zabbix安装完成后,当需要使用自定义脚本构建自定义item必须注意以下几点: 1.首先使用zabbix_get手动在zabbix-server服务端获取监控的默认的item值,如下: [root@ ...

  5. tensorflow之神经网络实现流程总结

    tensorflow之神经网络实现流程总结 1.数据预处理preprocess 2.前向传播的神经网络搭建(包括activation_function和层数) 3.指数下降的learning_rate ...

  6. stm32时钟树讲解

    1.管理好时钟,功耗才能更低

  7. Delphi XE5 for Android (七)

    Delphi XE5下,TMainMenu和TPopupMenu不可用,那么如何支持Android的菜单呢? 查看了一些资料,不得要领,只是摸索着先模拟一下吧. 首先在窗体上放置一个TPanel,在其 ...

  8. 如何修改ls命令列出来的目录颜色

    答:默认为蓝色,在黑色背景下无法看清楚,因此以以下方法修改; 1.往~/.bash_profile文件中添加以下内容: export LS_COLORS='no=00:fi=00:di=01;33:l ...

  9. P3066 [USACO12DEC]逃跑的BarnRunning Away From

    目录 题目 思路 错误&&注意 代码 题目 luoguP3066 思路 虽说这个题目有多种做法,但 左偏树算法: 我们发现这个合并的时候并不好合并,因为存的值不是固定的 那我们是不是可 ...

  10. Wireshark分析RabbitMQ

    消费者Code: using System; using System.Collections.Generic; using System.Linq; using System.Text; using ...