热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

慕课网vue2.x学习笔记

课程来源:https:www.imooc.comlearn1091源码地址:https:github.comkanlidyvue-lessons-dem

课程来源:https://www.imooc.com/learn/1091
源码地址:https://github.com/kanlidy/vue-lessons-demo

vue是在实例化对象里写代码

1.课程介绍

学习过程:
1.看(目录,重点,倍数看)
2.记(笔记,重点,讨论学习)
3.练习(随堂练,作业练,实战练)

课程知识点:
1.vue2 框架常用知识点(模板语法 条件渲染 列表渲染等)
2.vue 核心技术(vue-router vuex)
3.集成vue2.x

常用知识点:认识vue ,模块语法,v-bind属性绑定,事件绑定,条件渲染,列表渲染,Class与Style绑定
核心技术:认识vue-cli工具,vue代码规范,Vue组件的调试方法,vue-router,vuex
集成:介绍workflow工作流,单页面Demo(动态表单,列表动态展示),使用Cli工具,开发常见的应用组件

开发环境:
IDE:Webstorm、VsCode、
Node.js:Node、NPM
调试环境:Google浏览器的Vue devtools插件
工程环境:Vue Cli

2.Vue框架常用知识点

2.1知识点解释

环境介绍:
IDE:webstorm、vscode
NPM:Vue-cli、webpack、cnpm、nvm
Chrome:Vue调试插件

认识Vue:
第一个demo:声明式渲染、条件渲染、列表、事件
热部署:gulp、webpack、
认识样式:Sass、postcss
前置知识:代码规范(eslint)、学习资料(官网、社区)

基本概念:
模板语法、计算属性、指令(class,style绑定、条件渲染、列表渲染、事件处理、表单输入绑定)、组件基础(生命周期、模块化的思想)

部署:
服务器渲染、打包编译

常用API:
vue.use、props、DOM(el、template、render)

组件:
组件通信方式(props、$parent、emlt event、Vuex)、动画、Vue-router、Vue-resource

官方不推荐使用vue-resource,推荐使用Axios

2.2模板语法

Vue文件结构(template模板,script脚本,style样式)

模板语法包含插值、指令(指令缩写)

v-text = “变量”: 文本会原样输出
v-html = “变量”: 文本会被当作html解析输出(也可以当作模板使用)

{{变量}} 插值表达式

绑定事件: v-on:click=“函数名” 或者 @click=“函数名”(可以简写@click=“handlerClick”)
绑定属性:v-bind:href="url"或者v-bind:id=“bg1”,然后再data:{}中指定url和bg1就可以了(可以简写:href=“url”)

//模板语法
//绑定属性
//绑定事件




{{msg}}
百度
背景为黑色



牢记哈:v-text无法渲染数据中html元素,而v-html能够将数据中的html元素渲染出来。面试常问题目,拿小本本记下.

2.3计算属性与侦听器

计算属性:compued
侦听器:watch

watch 通常监听一个变量 或一个常量 单一变量 或是数组
computed 可以监听多个变量 并且变量是在vue实例中,如果有一个全局,非vue实例里面的变量发生了变化,是不会触发computed计算属性的,比如new Vue外的var定义变量发生了变化。

使用场景介绍:watch(异步场景),computed(数据联动)





{{msg}}
百度
背景为黑色

{{msg1}}




软回车:shift + enter,这样就不会因为回车而执行。

2.4条件渲染、列表渲染、Class与Style绑定

条件渲染:根据时间 或者一些什么需求 进行渲染(v-if v-else ,v-else-if v-show)
列表渲染: for 循环,v-for,v-for和v-if结合使用,v-for高阶用法
绑定class就等于给它上标签;这个标签还超级神奇,可以设置前提条件给他决定绑还是不绑






{{msg}}
29":class&#61;"[&#39;active&#39;,&#39;add&#39;,&#39;more&#39;,{&#39;another&#39;: item.age <30}]":style&#61;"styleMsg">{{item.name}}





3.Vue核心技术

如何工程化、如何写出优雅的vue代码、如何调试vue

vue init webpack 与vue create 创建项目有什么区别
一个 2.0 的 cli 命令&#xff0c;一个是 3.0 的 cli 命令

npm init 用来初始化生成一个新的 package.json 文件。

vue的开发本身是不依赖node的&#xff0c;不过vue的脚手架工具vue-cli里面集成的webpack是基于node开发出来的。因此只能说webpack是依赖node的。&#xff08;也就是vuecli集成webpack&#xff0c;webpack基于node开发&#xff09;

grunt,gulp,webpack这些只是工具&#xff0c;帮助我们前端完成复杂的开发&#xff0c;提高效率。你完全可以不用&#xff0c;如果不会的话还强行用只会加慢你的开发效率&#xff0c;而违背了初衷。

npm又是随node安装的工具&#xff0c;还要学node&#xff1f;node不是服务器端的吗&#xff1f;关前端什么事&#xff1f;
node是js的服务执行环境&#xff0c;前端常常借助 node帮助前端实现工程化。很多工具是基于node的&#xff0c;比如说你说的webpack,grunt。

传统项目只需要起后台服务即可&#xff08;可顺利调用后台API&#xff09;&#xff0c;现在的前端项目大多通过webpack管理&#xff0c;webpack又是基于node&#xff0c;node是一个运行在服务器端的js环境&#xff0c;浏览器本身不支持的scss、es6/es7语法、typescript等都可在node这通过工具包npm去解决.因此前端项目起的node服务一般是为了解决这些问题。

更多参考&#xff1a;https://www.cnblogs.com/HenryWEI/p/10045877.html

3.1认识vue-cli

快速创建工程的两种方法&#xff1a;
1.vue create 文件名
2.vue ui

Router&#xff1a;路由组件
Vuex&#xff1a;状态控制组件

工程化项目的目录

3.2组件化的思想

什么是组件化&#xff1f;
独立的&#xff0c;可复用的&#xff0c;整体化的

为什么要组件化&#xff1f;
实现功能模块的复用&#xff1b;
高执行效率&#xff1b;
开发单页面复杂应用&#xff1b;

如何进行拆分&#xff1f;
300行原则&#xff1b;复用原则&#xff1b;业务复杂性原则&#xff1b;

组件带来的问题&#xff1a;
组件状态管理vuex;
多组件的混合使用&#xff0c;多页面&#xff0c;复杂业务&#xff08;vue-router&#xff09;;
组件间的传参&#xff0c;消息&#xff0c;事件管理&#xff08;props, emit/on, bus&#xff09;

3.3vue代码规范

风格指南地址&#xff1a;
https://cn.vuejs.org/v2/style-guide/

3.4vue-router介绍

Vue中组件&#xff1a;
注册组件就是利用Vue.component()方法&#xff0c;先传入一个自定义组件的名字&#xff0c;然后传入这个组件的配置。

// 定义一个名为 button-counter 的新组件
Vue.component(&#39;button-counter&#39;, {data: function () {return {count: 0}},template: &#39;&#39;
})


new Vue({ el: &#39;#components-demo&#39; })

还可以在某个Vue实例中注册只有自己能使用的组件。

var app &#61; new Vue({el: &#39;#app&#39;,data: {},components: {&#39;my-component&#39;: {template: &#96;

这是一个局部的自定义组件&#xff0c;只能在当前Vue实例中使用
&#96;,}}})

更多可以参考&#xff1a;https://segmentfault.com/a/1190000010527064

3.5vuex介绍

vuex&#xff1a;
1.为Vue.js开发的状态管理模式。
2.组件状态集中管理
3.组件状态改变遵循统一的规则

由于状态零散地分布在许多组件和组件之间的交互中&#xff0c;大型应用复杂度也经常逐渐增长。为了解决这个问题&#xff0c;Vue 提供 vuex&#xff1a;我们有受到 Elm 启发的状态管理库。vuex 甚至集成到 vue-devtools&#xff0c;无需配置即可进行时光旅行调试。

Vuex相当于中央管理器&#xff0c;其他组件可以对Vuex中组件状态进行修改&#xff0c;也可以进行调用&#xff0c;保证一个组件状态是一致的。

//views/info.vue
//store.js
import Vue from &#39;vue&#39;
import Vuex from &#39;vuex&#39;Vue.use(Vuex)export default new Vuex.Store({state:{ //组件状态管理count:0},mutations:{ //改变状态方法集increase(){this.state.count &#43;&#43;}},action:{ //}})//引入组件状态管理&#xff08;About.vue&#xff09;

3.6如何进行调试

第一种&#xff1a;vue的chrome扩展插件&#xff1b;(Vue插件中第一个图标是指组件、第二个是状态)
第二种 &#xff1a;在methods中用console.log&#xff0c;alert()&#xff0c;debugger&#xff1b;
第三种&#xff1a;在mounted中绑定window.vue&#61;this&#xff0c;然后就可以在console中使用window.vue.xxx调用方法&#xff0c;直接调试;
第四种&#xff1a;在cdn方式引入vue时&#xff0c;将vue实例化&#xff0c;即vm实例:var app&#61;new Vue();

在这里插入图片描述

Network中XHR是指请求

代码中插入debugger语句即可使用实时调试功能

补充&#xff1a;alert是一个阻塞模式的&#xff0c;就是在点击确定前后面的代码不会执行。

4.集成Vue

4.1如何集成Vue

集成场景&#xff1a;
1.单页面、多页面引入Vue.js
2.复杂单页面应用Vue cli工具
在这里插入图片描述

在这里插入图片描述

git简介&#xff1a;
1.创建项目git clone&#xff0c;git init
2.创建分支&#xff0c;推送分支&#xff0c;合并分支
3.删除分支、回退版本

Git可以参考资料&#xff1a;http://www.runoob.com/git/git-tutorial.html

git add 命令可将该文件添加到缓存
使用 git add 命令将想要快照的内容写入缓存区&#xff0c; 而执行 git commit 将缓存区内容添加到仓库中。
git push&#xff1a;是将本地库中的最新信息发送给远程库&#xff1b;

git pull&#xff1a;是从远程获取最新版本到本地&#xff0c;并自动merge&#xff1b;
git fetch&#xff1a;是从远程获取最新版本到本地&#xff0c;不会自动merge&#xff1b;
git merge&#xff1a;是用于从指定的commit(s)合并到当前分支&#xff0c;用来合并两个分支&#xff1b;
git pull 相当于 git fetch &#43; git merge。

第一步需要配置用户名和邮箱地址。

$ git config --global user.name &#39;runoob&#39;
$ git config --global user.email test&#64;runoob.com

回退制定版本指令&#xff1a;
git reset --hard HEAD{number} 或者是&#xff1a;git reset --hard 76c4d4f
git log
git reflog

4.2单页面应用Demo1

4.3如何高仿别人的APP

如何研究别人的产品技术&#xff1a;
1、Chrome查看Dom结构
2、Header/body&#xff0c;查看js/css引用&#xff0c;搜索对应的js库
3、查看sources、network中的js&#xff0c;使用反编与断点进行调试

4.4单页面应用Demo2

4.5单页面应用Demo3

5.课程总结

5.1重点知识点回顾

模板语法&#xff1b;
计算属性与侦听器&#xff1b;
常用指令&#xff08;列表、条件、class与样式绑定&#xff09;&#xff1b;
风格指南&#xff1b;
vue-router&#xff0c;vuex以及调试方法
vuecli 工具的使用
Vue集成
开发工作流
Git简介

工程打包&#xff1a;

npm run build把工程打包后&#xff0c;会把整个项目文件打包生成一个dist文件夹&#xff0c;把dist文件夹放在服务器就可以进行部署了。可以把dist目录中的文件&#xff0c;放在tomcat/nginx这样的web容器中&#xff0c;使用localhost:8080这种方式来打开&#xff0c;或者&#xff0c;上传到网站的www目录&#xff0c;同样的道理&#xff0c;使用nginx或者apache2来跑一个http服务。

5.2课程总结

在这里插入图片描述


推荐阅读
  • 如何用UE4制作2D游戏文档——计算篇
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了如何用UE4制作2D游戏文档——计算篇相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 在package.json中有如下两个对象:husky:{hooks:{pre-commit:lint-staged}},lint-staged:{src** ... [详细]
  • node.jsurlsearchparamsAPI哎哎哎 ... [详细]
  • 在Android开发中,使用Picasso库可以实现对网络图片的等比例缩放。本文介绍了使用Picasso库进行图片缩放的方法,并提供了具体的代码实现。通过获取图片的宽高,计算目标宽度和高度,并创建新图实现等比例缩放。 ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • 本文详细介绍了在ASP.NET中获取插入记录的ID的几种方法,包括使用SCOPE_IDENTITY()和IDENT_CURRENT()函数,以及通过ExecuteReader方法执行SQL语句获取ID的步骤。同时,还提供了使用这些方法的示例代码和注意事项。对于需要获取表中最后一个插入操作所产生的ID或马上使用刚插入的新记录ID的开发者来说,本文提供了一些有用的技巧和建议。 ... [详细]
  • RouterOS 5.16软路由安装图解教程
    本文介绍了如何安装RouterOS 5.16软路由系统,包括系统要求、安装步骤和登录方式。同时提供了详细的图解教程,方便读者进行操作。 ... [详细]
  • Node.js学习笔记(一)package.json及cnpm
    本文介绍了Node.js中包的概念,以及如何使用包来统一管理具有相互依赖关系的模块。同时还介绍了NPM(Node Package Manager)的基本介绍和使用方法,以及如何通过NPM下载第三方模块。 ... [详细]
  • HSRP热备份路由器协议的应用及配置
    本文介绍了HSRP热备份路由器协议的应用及配置方法,包括设计目标、工作原理、配置命令等。通过HSRP协议,可以实现在主动路由器故障时自动切换到备份路由器,保证网络连通性。此外,还介绍了R1和R2路由器的配置方法以及Sw1和Sw2交换机的配置方法,最后还介绍了测试连通性和路由追踪的方法。 ... [详细]
  • 【前端工具】nodejs+npm+vue 安装(windows)
    预备先看看这几个是干嘛的,相互的关系是啥。nodejs是语言,类比到php。npm是个包管理,类比到composer。vue是个框架&# ... [详细]
  • Vue基础一、什么是Vue1.1概念Vue(读音vjuː,类似于view)是一套用于构建用户界面的渐进式JavaScript框架,与其它大型框架不 ... [详细]
  • 动态多点××× 单云双HUB
    动态多点是一个高扩展的IPSEC解决方案传统的ipsecS2S有如下劣势1.中心站点配置量大,无论是采用经典ipsec***还是采用greoveripsec多一个分支 ... [详细]
author-avatar
手机用户2502875927
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有