一、本尊建议的学习顺序:https://zhuanlan.zhihu.com/p/23134551(侵删)

二、安装:

1、安装 Node.js,可以去Node.js的官网上下载;

2、(非必选)如果想日后方便使用,安装依赖包快一点,切一下淘宝 npm 的镜像,不会的百度:切换淘宝npm镜像 ,就会出来一大堆,自己看!
3、安装webpack,运行:npm install webpack -g,这里有全局安装和局部安装(区别在后面的 -g 参数),建议选全局的;
4、然后通过 vue-cli 的脚手架一步一步的搭建一个vue的项目,直到能跑起来为止。

详情:https://blog.csdn.net/six_six_six_666/article/details/82633731 (侵删)

5、文件夹目录:

三、部分知识整理:

1、vue单文件:

以*.vue结尾的文件,最终通过webpack也会编译成*.js在浏览器运行(webpack找人来理解你的单文件代码)

<style>
/* pageFullScreen在index.css */
#xxxFullScreen {
background-color: #eee;
} </style>
<template>
<div class="pageFullScreen" id="xxxFullScreen"> </div>
</template>
<script>
export default {
data() {
return {
}
},
activated() {
}
}
</script>

①、template中只能有一个根节点(div);

②、script中按照export default{配置}来写;

③、style中可以设置scoped属性,让其只在template中生效。

2、src :存放人可以看懂的源代码,具备一定的功能划分;

dist:存放真实上线的代码(减少请求,混淆代码),机器能看懂的;

  webpack.config.js 打包生成dist下的代码

3、vue与angular比较:

前者 是组块化(细分代码)、双向数据流(基于ES5中的defineProperty来实现的,IE9才支持;js内存属性发生改变,影响页面变化,反之也改变。)

后者是模块化、双向数据绑定。

4、部分指令:

v-text:元素的innerText只能在双标签中使用;

v-html:元素的innerHTML,不能包含{{xxx}};

v-if:元素是否移除或者插入;

v-show:元素是否显示或者隐藏;

v-model:双向数据绑定(页面<---->内存);<常在input、select、radio、textarea、checkbox等表单控件元素上>

v-bind:单向数据绑定(内存js改变影响页面,简写:可以省略);

v-for:可以使用操作数组(item,index),操作对象(value,key,index)

  <key是类似trank by的一个属性,为的是告诉vue.js中的元素,与页面之间的关联,当试图删除元素的时候,是个单个元素的删除,而不是正版替换,所以需要关联其关系,设置>

5、父子组件: (prop单向绑定:父----->子) 

  父组件需要声明子组件,引入子组件对象;

①、父组件通过子组件的属性将值进行传递,方式有:

  常量:prop1=“属性值”

  变量:prop2=“变量名”

②、子组件需要声明:

  根属性  props:['prop1','prop2']

  在页面中直接使用{{prop1}}    在js中使用prop1?用this.prop1获取。

动态props:类似于用v-bind 绑定html特性到一个表达式,也可以用v-bind动态绑定props的值到父组件的数据中。

  每当父组件的数据变化时,该变化也会传导给子组件。

6、过滤器:(Js函数,可以接受参数,可以串联;过滤器函数接受表达式的值作为第一个函数)

  content 过滤器,vue中没有提供相关的内置过滤器,可以自定义过滤器;

组件内的过滤器+全局过滤器:

  组件内关联过滤器就是options中的一个filters的属性(一个对象)

  多个key就是不同过滤器名,多个value就是与key对应的过滤器方式函数体    vue.filter(名,fn)

比较:

  全局:范围大,如果出现同名时,权利小;

  组件内:范围小,如果出现同名时,权力大。

7、获取DOM元素:

  前端框架就是为了减少DOM操作,但是特定情况下,也会给你留下后门;

  在指定的元素上,添加 ref="名称A"

  在获取的地方加入 this.$refs.名称A

     如果ref放在原生DOM元素上,获取的数据就是原生DOM对象;可以直接操作;

        如果ref放在了组件对象上,获取的就是组件对象;获取到DOM对象,通过this.$refs.sub.$el,进行操作。

四、核心插件----路由 vue-router

  这里的路由并不是指我们平时所说的硬件路由器,这里的路由就是SPA(单页应用)的路径管理器。再通俗的说,vue-router就是WebApp的链接路径管理系统。
  vue-router是Vue.js官方的路由插件,它和vue.js是深度集成的,适合用于构建单页面应用。vue的单页面应用是基于路由和组件的,路由用于设定访问路径,并将路径和组件映射起来。传统的页面应用,是用一些超链接来实现页面切换和跳转的。在vue-router单页面应用中,则是路径之间的切换,也就是组件的切换。路由模块的本质 就是建立起url和页面之间的映射关系

  至于我们为啥不能用a标签,这是因为用Vue做的都是单页应用(当你的项目准备打包时,运行npm run build时,就会生成dist文件夹,这里面只有静态资源和一个index.html页面),所以你写的<a></a>标签是不起作用的,你必须使用vue-router来进行管理。

至于其实现原理及使用路由模块实现页面跳转的方式可以查看(链接:https://www.jianshu.com/p/4c5c99abb864)(侵删)

包含的功能有:

  • 嵌套的路由/视图表
  • 模块化的、基于组件的路由配置
  • 路由参数、查询、通配符
  • 基于 Vue.js 过渡系统的视图过渡效果
  • 细粒度的导航控制
  • 带有自动激活的 CSS class 的链接
  • HTML5 历史模式或 hash 模式,在 IE9 中自动降级
  • 自定义的滚动条行为

1、使用方式:

①、下载‘npm i vue-router-S’

②、在main.js中引入

import VueRouter from 'vue-router'

③、安装插件'vue.use(插件)‘

Vue.use(VueRouter)

④、创建路由对象并配置路由规则;

let router = new VueRouter({routes:[{path:'/home',component:Home}]});

⑤、将其路由对象传递给vue的实例,options中

router:router

⑥、留坑

<router-view></router-view> 

2、命名路由:

  通过a标签点击,做页面数据跳转:  使用router-link标签(一个组件,用于设置一个导航链接;切换不同html内容)

①、去哪里:  

<router-link to="/beijing"> 去北京</router-link>

②、去哪里

<router-link :to="{name:'bj'}"> 去北京</router-link>

更利于维护,如果修改了path,只修改路由配置中的path,该a标签会根据修改后的值生成href属性

3、参数router-link:

在vue-router中,有两大对象被挂载到了实例this:

  $route(只读,具备信息的对象)、$router(具备功能函数的对象)

查询字符串:

  1、去哪里:

<router-link :to="{name:'detail',query:{id:1}}"> xxx</router-link>

  2、导航(查询字符串path不能改)

{name:'detail',query:'/detail',组件}

  3、去了干嘛:获取路由参数(要注意是query还是params和对应id名)

this.$route.query.id

path方式:

  1、去哪里:

<router-link :to="{name:'detail',params:{name:1}}"> xxx</router-link>

  2、导航(path方式需要在路由规则上加上/:xxx)

{name:'detail',path:'/detail/:name',组件}

  3、去了干嘛,获取路由参数(要注意是query还是params和对应name名)

this.$route.params.name

 

Vue部分知识的更多相关文章

  1. vue基础知识之vue-resource/axios

    Vue基础知识之vue-resource和axios(三)   vue-resource Vue.js是数据驱动的,这使得我们并不需要直接操作DOM,如果我们不需要使用jQuery的DOM选择器,就没 ...

  2. Vue基础知识之vue-resource和axios

    Vue基础知识之vue-resource和axios  原文链接:http://www.cnblogs.com/Juphy/p/7073027.html vue-resource Vue.js是数据驱 ...

  3. vue路由知识整理

    vue路由知识整理 对于单页应用,官方提供了vue-router进行路由跳转的处理.我们已经可以通过组合组件来组成应用程序,当你要把 vue-router 添加进来,我们需要做的是,将组件(compo ...

  4. Vue大概知识体系和学习参考

    Vue大概知识体系和学习参考文档 官方文档学习,参考,借鉴地址:https://cn.vuejs.org/v2/guide/installation.html 菜鸟教程:https://www.run ...

  5. 【Vue高级知识】细谈Vue 中三要素(响应式+模板+render函数)

    [Vue高级知识]细谈Vue 中三要素(响应式+模板+render函数):https://blog.csdn.net/m0_37981569/article/details/93304809

  6. vue初级知识总结

    从我第一篇博客的搭建环境开始,就开始学习vue了,一直想将这些基本知识点整理出来,但是一直不知如何下手,今天刚好实战了两个小demo,所以就想趁这机会将以前的一起整理出来,这是vue最基础的知识,我有 ...

  7. Vue基础知识简介

    基础知识: vue的生命周期: beforeCreate/created.beforeMount/mounted.beforeUpdate/updated.beforeDestory/destorye ...

  8. vue - 准备知识

    一.知识 http://www.cnblogs.com/majj/https://www.cnblogs.com/majj/category/1216624.html 阮一峰 es6http://es ...

  9. vue相关知识

    1.看https://www.bilibili.com/video/av27969216/?p=54,看他的就够了 https://juejin.im/post/5a5bc8c36fb9a01ca26 ...

随机推荐

  1. P2060 [HNOI2006]马步距离

    P2060 [HNOI2006]马步距离 数据到百万级别,明显爆搜不行,剪枝也没法剪.先打表.发现小数据内步数比较受位置关系影响,但数据一大就不影响了.大概搜了一个20*20的表把赋值语句打出来.判断 ...

  2. ACM学习历程—ZOJ3878 Convert QWERTY to Dvorak(Hash && 模拟)

    Description Edward, a poor copy typist, is a user of the Dvorak Layout. But now he has only a QWERTY ...

  3. [Codeforces 452E] Three Strings

    [题目链接] https://codeforces.com/contest/452/problem/E [算法] 构建后缀数组 用并查集合并答案即可 时间复杂度 : O(NlogN) [代码] #in ...

  4. 洛谷 P2919 [USACO08NOV]守护农场Guarding the Farm

    题目描述 The farm has many hills upon which Farmer John would like to place guards to ensure the safety ...

  5. python爬虫知识点详解

    python爬虫知识点总结(一)库的安装 python爬虫知识点总结(二)爬虫的基本原理 python爬虫知识点总结(三)urllib库详解 python爬虫知识点总结(四)Requests库的基本使 ...

  6. C++之MutexLock和MutexLockGuard封装

    noncopyable.h #ifndef __WD_NONCOPYABLE_H__ #define __WD_NONCOPYABLE_H__ namespace wd { class Noncopy ...

  7. Mysql源码学习——源码目录结构

    目录清单 目录名 注释 Bdb 伯克利DB表引擎 BUILD 构建工程的脚本 Client 客户端 Cmd-line-utils 命令行工具 Config 构建工程所需的一些文件 Dbug Fred ...

  8. Mysql 5.7.18忘记密码

    5.7.18密码修改发生了变化,旧版的方法不再奏效. 1. ps -ef | grep mysqld,kill掉启动的mysql服务: 2. 创建/etc/my.cnf,添加: [mysqld] sk ...

  9. NOI.AC 32 Sort——分治

    题目:http://noi.ac/problem/32 从全是0和1的情况入手,可以像线段树一样分治下去,回到本层的时候就是左半部的右边是1,右半部的左边是0,把这两部分换一下就行.代价和时间一样是n ...

  10. Advanced R之数据结构

    看了几本R语言语法相关的书籍,感觉都不怎么好,在实际使用过程中仍然遇到很多难以理解的问题,后来看了Hadley Wickham的Advanced R,好多问题迎刃而解,今天重温了该书的第一章即数据结构 ...