谷粒商城之Vue框架学习

目录

基本语法和插件安装

插值表达式

v-html与v-text讲解

v-bind讲解

v-model的讲解

v-on事件绑定讲解

v-for遍历 

v-if和v-show的讲解

计算属性、监听器、过滤器

组件

Vue的生命周期

Vue模块化开发

整合element-ui进行快速开发


基本语法和插件安装

快速入门:介绍 — Vue.js

我们学习的是vue2.x版本 

vue的安装:

①使用src进行引入

② 使用npm进行安装

1.vscode 创建一个文件夹,进行一个初始化

npm init -y

生成package.json文件进行一个包的管理 

2.使用npm install vue命令,安装vue

npm install vue

Vue的使用 

①导入vue

 

  

实现了一个单向的绑定,修改数据页面跟着动态变化

插值表达式

使用:{{}}

①{{}}里面可以放Vue实例定义的数据或者函数,表达式,js内置函数(必须要有返回值)

②标签内部使用插值表达式,在网络不佳情况下会造成插值闪烁的问题

v-html与v-text讲解

 将网络调成慢3G

会出现{{msg}}然后再出现<h1>hello</hello>,这种现象称为:插值闪烁

解决方案:使用v-html(会进行转义)和v-text(不会进行转义)

v-bind讲解

作用:为html标签的属性绑定

在class和style属性中的运用 ,使用一对{}里面存放的是对象

v-model的讲解

作用:双向绑定

应用:表单、vue自定义组件

v-on事件绑定讲解

v-on:事件名="数据、函数、表达式"

简写:@

事件冒泡讲解 

 

当点击小div时会触发两次hello函数,这个就称为事件冒泡 

.stop:阻止事件冒泡到父元素

.prevent:阻止默认事件发生

.once:只执行一次

此时点击小div只会出现一次点击了 

阻止跳转 

阻止跳转并且不向上冒泡 

只生效一次 

 按键修饰符

组合按键

v-for遍历 

1.显示user信息:v-for="user in users"

 2.获取数组的下标:v-for="(user,index) in users"

3.遍历对象

①v-for="value in Object"

 

 ②v-for="(value,key) in Object"

 ③v-for="(value,key,index) in Object"

4.遍历的时候加上:key来区分不同的数据,提高vue的渲染效率

v-if和v-show的讲解

v-if:顾名思义,用于条件判断,如果为true的话,所在的元素才会进行渲染

v-show:当得到的结果为true时,所在的元素才会被显示

 区别:

计算属性、监听器、过滤器

计算属性:在vue实例中使用computed

 监听器:可以监控一个值的变化做出相对应的反应

 过滤器常用来处理文本格式化操作,过滤器可以用在两个地方:双花括号插值v-bind表达式

使用三元运算符的话,后台处理会比较复杂

 局部过滤器仅限于当前vue实例管控的标签使用

 全局过滤器

第一个参数:全局过滤器的名字

第二个参数:过滤的规则 

组件

假如我们想要复用这个点赞组件 ,我们可以注册一个全局组件

注册一个局部组件 

说明: 

1.组件也是个vue实例,因此它在定义时也会接收:data、methods、声明周期函数等

2.不同的是组件不会与页面元素绑定,否则就无法复用了,因此没有el属性

3.但是组件渲染需要html模板,因此增加了template属性,值就是html模板

4.全局组件定义完毕,任何vue实例都可以直接在html中通过组件名称来使用组件了

5.data必须是个函数,不再是个对象

Vue的生命周期

 

Vue模块化开发

1.全局安装webpack

npm install webpack -g

2.全局安装vue脚手架

npm install -g @vue/cli-init

3.初始化vue项目

vue init webpack appname 

vue脚手架使用webpack模板初始化一个appname项目

①创建一个vue-demo文件夹,在路径上输入cmd

 

如果在初始化时,你点击鼠标左键不动了,cmd以为你要输输入字符,可以进行下面设置 

鼠标右击下图处

 

 初始化项目的目录

 

我们目前主要关注src

index.html是首页面,有main.js中的vue实例对它进行管控

 这是一个典型的单文件组件

 路由视图在index中配置

 访问/就相当于访问helloworld.vue

创建新的视图

 

 添加路由

 

整合element-ui进行快速开发

为了方便开发,我们编写一个单文件组件模板

输入vue ,下面是模板

// {
// 	// Place your 全局 snippets here. Each snippet is defined under a snippet name and has a scope, prefix, body and 
// 	// description. Add comma separated ids of the languages where the snippet is applicable in the scope field. If scope 
// 	// is left empty or omitted, the snippet gets applied to all languages. The prefix is what is 
// 	// used to trigger the snippet and the body will be expanded and inserted. Possible variables are: 
// 	// $1, $2 for tab stops, $0 for the final cursor position, and ${1:label}, ${2:another} for placeholders. 
// 	// Placeholders with the same ids are connected.
// 	// Example:
// 	// "Print to console": {
// 	// 	"scope": "javascript,typescript",
// 	// 	"prefix": "log",
// 	// 	"body": [
// 	// 		"console.log('$1');",
// 	// 		"$2"
// 	// 	],
// 	// 	"description": "Log output to console"
// 	// }
// }
{
	"生成vue模板": {
		"prefix": "vue",
		"body": [
			"<!-- $1 -->",
			"<template>",
			"<div></div>",
			"</template>",
			"",
			"<script>",
			"//这里可以导入其他文件(比如:组件,工具js,第三方插件js,json文件,图片文件等等)",
			"//例如:import 《组件名称》 from '《组件路径》';",
			"",
			"export default {",
			"//import引入的组件需要注入到对象中才能使用",
			"components: {},",
			"props: {},",
			"data() {",
			"//这里存放数据",
			"return {",
			"",
			"};",
			"},",
			"//监听属性 类似于data概念",
			"computed: {},",
			"//监控data中的数据变化",
			"watch: {},",
			"//方法集合",
			"methods: {",
			"",
			"},",
			"//生命周期 - 创建完成(可以访问当前this实例)",
			"created() {",
			"",
			"},",
			"//生命周期 - 挂载完成(可以访问DOM元素)",
			"mounted() {",
			"",
			"},",
			"beforeCreate() {}, //生命周期 - 创建之前",
			"beforeMount() {}, //生命周期 - 挂载之前",
			"beforeUpdate() {}, //生命周期 - 更新之前",
			"updated() {}, //生命周期 - 更新之后",
			"beforeDestroy() {}, //生命周期 - 销毁之前",
			"destroyed() {}, //生命周期 - 销毁完成",
			"activated() {}, //如果页面有keep-alive缓存功能,这个函数会触发",
			"}",
			"</script>",
			"<style  scoped>",
			"$4",
			"</style>"
		],
		"description": "生成vue模板"
	},
	"http-get请求": {
		"prefix": "httpget",
		"body": [
			"this.\\$http({",
			"url: this.\\$http. adornUrl(''),",
			"method: 'get',",
			"params: this.\\$http.adornParams({})",
			"}).then(({data})=>{",
			"})"
		],
		"description": "httpGet请求"
	},
	"http-post请求": {
		"prefix": "httppost",
		"body": [
			"this.\\$http({",
			"url: this.\\$http. adornUrl(''),",
			"method: 'post',",
			"data: this.\\$http.adornData(data, false)",
			"}).then(({ data })=>{ });"
		],
		"description": "httpPost请求"
	}
}
	

Element-ui官方文档:Element - The world's most popular Vue UI framework

①Element-ui安装

npm i element-ui -S

②在main.js中导入element-ui组件和样式

 demo1演示:

 demo2演示:

将其修改成点击用户列表就显示用户数据,点击hello就显示hello.vue 

抽取Table组件

  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值