解析Vue项目

# 1 为什么浏览器中访问某个地址,会显示某个页面组件
根组件:APP.vue 必须是
<template>
<div id="app">
<router-view></router-view>
</div>
</template>
1 配置路由
router--->index.js--->const routes =[
{
path: '/xxx',
name: 'xxx',
component: xxx
},
]
2 放心大胆的写页面组件 src--->view文件夹 # 在页面组件中使用小组件
1 写一个小组件,我们写了个Child.vue
2 在父组件中,导入组件
@ 代指src路径
import Child from '@/components/Child';
3 父组件中,注册组件
components:{
Child
}
4 父组件中使用组件
<Child :msg="msg" @myevent="handleEvent"></Child>
5 自定义属性,自定义事件,插槽,跟之前一模一样

登录小案例

# 1 新建一个页面组件:LoginView.vue
# 2 前端访问/login这个页面组件
# 3 在LoginView.vue写html,和js,axios
安装 axios
cnpm install -S axios # 把安装的axios放到package.json中
# 4 写ajax,像后端发送请求,给按钮一个事件
#安装axios,导入axios
import axios from 'axios'
'''点击事件发送axios'''
handleSubmit() {
axios.post('http://127.0.0.1:8000/login/', {
name:this.name,
password:this.password
})
.then( response=> {
if (response.data.code ===100){
location.href = 'http://www.baidu.com'
}else {
alert(response.data.msg)
}
})
}
# 4 写个后端的登录接口,处理好跨域问题
from rest_framework.views import APIView
class LoginView(APIView):
def post(self,request):
res = json.loads(request.body)
name = res.get('name')
password = res.get('password')
print(name,password)
if name == 'xxx' and password == '123':
return Response({'code':100,'msg':'登录成功'})
else:
return Response({'code':101,'msg':'用户名密码错误'})
####跨域问题####
1 安装
pip3.8 install django-cors-headers
2 注册app
INSTALLED_APPS = (
...
'corsheaders',
...
)
3 配置中间件
MIDDLEWARE = [
...
'corsheaders.middleware.CorsMiddleware',
...
]
4 配置文件中加入:setting下面添加下面的配置
CORS_ORIGIN_ALLOW_ALL = True
CORS_ALLOW_METHODS = (
'DELETE',
'GET',
'OPTIONS',
'PATCH',
'POST',
'PUT',
'VIEW',
) CORS_ALLOW_HEADERS = (
'XMLHttpRequest',
'X_FILENAME',
'accept-encoding',
'authorization',
'content-type',
'dnt',
'origin',
'user-agent',
'x-csrftoken',
'x-requested-with',
'Pragma',
'token'
)

scoped

# 新建的组件  加了scoped,表示样式只在当前组件生效,如果不加,子组件都会使用这个样式
<style scoped>
</style>

ref属性

# ref属性
放在普通标签上,通过 this.$refs.名字--->取到的是dom对象,可以直接操作dom
放在组件上,通过该this.$refs.名字---》取到的是组件对象,这样在父组件中,就拿到了子组件对象,对象属性和方法直接用即可 // this.$refs.myinput.value = 'xxxxxx'
// this.$refs.myhello // 就是组件对象
// console.log(this.$refs.myhello.name)
// this.$refs.myhello.handleClick()
this.$refs.myhello.name = '我把子组件name改了'

props其他

# 父传子之自定义属性

    # 1 基本使用
props:['img']
# 2 限制类型
props: {'msg': Boolean}
# 3 限制类型,必填,默认值
props: {
msg: {
type: String, //类型
required: true, //必要性
default: '老王' //默认值
}
}

混入mixin

# 包下的 index.js  有特殊含义
之前导入写法
import xx from './mixin/index.js'
现在可以写成
import xx from './mixin' # mixin(混入)
功能:可以把多个组件共用的配置提取成一个混入对象 # 使用步骤
1 定义混入对象:创建一个文件夹mixin--->在里面创建一个index.js中写
export const lqz = {
data() {
return {
name: 'lqz'
}
},
methods: {
handleName() {
alert(this.name)
}
}
}
2 使用混入:局部使用,组件中使用
import {xxx} from '@/mixin'
mixins:[xxx]
3 全局使用混入:每个组件都有效 在main.js中设置
import {xxx} from '@/mixin'
Vue.mixin(xxx)

插件

# 插件功能:用于增强Vue,有很多第三方插件
(vuex,router,elemetui) # 定义自己的插件
本质:包含install方法的应该对象,install的第一个参数是Vue,第二个以后的参数是插件使用者传递的数据 # 使用步骤
1 定义插件:创建一个文件夹plugins--->创建一个js文件index.js---->
export default {
install(){
// 1 在vue实例中放属性
# 往vue的原型中放axios对象,以后再组件中 this.$ajax 拿到的就是这个axios对象,直接用即可
import axios from "axios";
Vue.prototype.$ajax =axios // 2 定义混入,全局都可以使用混入
定义混入,所有vc和vm上都有name和age
Vue.mixin({
data(){
return {
name:'xxx',
age:18
}
}
}) // 3 自定义指令--->以后可能会使用第三方插件,它提供了一些指令
// 4 定义全局组件--->全局
}
}
2 在main.js中 使用插件
import xxx from '@/plugins'
Vue.use(xxx) # 这句话,就会执行xxx中的install,并且把vue传入

Element-ui

# ui库 控制样式的,它就是vue的一个插件

# 在vue项目中引入 element-ui
1 在项目中安装:
cnpm install element-ui -S
2 main.js配置
import ElementUI from 'element-ui'; // 把对象引入
import 'element-ui/lib/theme-chalk/index.css'; // 把样式引入
Vue.use(ElementUI) // 使用elementui 3 看到好看的直接复制
html、css、js # 补充
1 卸载element-ui
cnpm uninstall element-ui -S
2 清缓存
cnpm cache clean -f
3 下载相对应的版本
cnpm i element-ui@2.13.0 -S

Vue——登录小案例、scoped、ref属性、props其他、混入mixin、插件、Element-ui的更多相关文章

  1. Vue ref属性 && props配置项

    1 // # ref属性: 2 // # 1.用来给元素或者子组件注册引用信息(id的替代者) 3 // # 2.应用在html标签上获取的是真实的DOM元素,应用在组件标签上是组件实例对象(vc) ...

  2. Vue.js小案例、生命周期函数及axios的使用

    一.调色框小案例: 随着三个滑动框的变化,颜色框的颜色随之改变 1.1.实例代码 <!DOCTYPE html> <html lang="en" xmlns:v- ...

  3. vue加scoped后无法修改样式(无法修改element UI 样式)

    有的时候element提供的默认的样式不能满足项目的需要,就需要我们队标签的样式进行修改,但是发现修改的样式不起作用 第一种方法 原因:scoped 解决方法:去掉scoped 注意:此时该样式会污染 ...

  4. Vue读书笔记:关于$ref、props和$emit

    1.props实现父组件向子组件传递数据 子组件可以通过props接收到来自父组件的数据,并且是单向绑定的.也就是说,数据不能从子组件反向传递. 2.$ref实现子组件向父组件通信 来自官方非常难理解 ...

  5. vue图书小案例

    小知识点: vue中计算属性有缓存(对象属性变化时才会更新),方法没有缓存,所以计算属性比方法效率高js中let有块级作用域,var没有块级作用域,所以var是有缺陷的this.letters[0] ...

  6. Servlet登录小案例

    需求:登录功能 登录页面输入用户名和密码, 到数据库进行验证 ,如果成功跳转到success.html页面,失败跳转到error.html页面数据库 mysql,数据表 t_user表[表中的字段 : ...

  7. Vue.js小案例(2)

    即时搜索 这个例子主要应用了vue.js的自定义过滤器,可以通过Vue.filter()注册一个全局过滤器,具体用法可以参考这里,vue.js也提供了一些内置过滤器. CSS代码: [v-cloak] ...

  8. Vue.js小案例(1)

    数据绑定 数据绑定是vue.js的基础.本例中就是利用了vue.js的v-model指令在表单元素上创建双向数据绑定. <!--这是我们的View--> <div id=" ...

  9. 一个VUE的小案例

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  10. Vue小案例(一)

    案例需求: 创建一个品牌展示表格,表头有编号(id),品牌名称(name),创建时间(time)和操作,需要实现的功能是对数据的增删操作,和时间的格式化. 思路分析:在开发之前需要想清楚要用到Vue中 ...

随机推荐

  1. 阿里巴巴为什么建议使用BigDecimal进行浮点数运算

    本文先引入一个例子,星期天你和女朋友去逛街,看到一家奶茶店.女朋友想喝奶茶了,你就去买了杯奶茶,然后你问了一下价格.店员说奶茶0.9元一杯.然后你给了1元钱.这个时候你忽然问了一下女友.服务员该找我们 ...

  2. Unity C# IEnumrator 与 async 有的区别

    前言 IEnumerator 和 async 是在 Unity 和 C# 中处理异步编程的两种不同方法.它们各自有不同的使用场景和优缺点. IEnumerator IEnumerator 是 C# 中 ...

  3. ACM-NEFU15届校赛-大二组

    A.小林找工作 #include<bits/stdc++.h> using namespace std; const int MAXN=1e5+10; int p[MAXN]; int m ...

  4. Python3.8环境安装PyHook3

    Python3.8环境安装PyHook3 1. 安装python对应版本的pyhook3网  址:https://pypi.org/project/PyHook3/#files如果没有对应版本,请下载 ...

  5. [JavaScript]Promise:异步编程

    1 文由 某项目的需求:先要请求API1,再以API1的结果请求API2. var n, a; //var r = window.md5; var r = function (password, us ...

  6. [设计模式/网络/WebServer/Nginx]设计模式之代理模式(网络代理 : 正向代理与反向代理)【7】

    1 代理模式 1.1 模式定义 代理模式(Proxy Pattern):为其他对象提供一种代理服务以对这个被代理的对象进行控制访问.[ 设计模式.面向对象程序设计思想的鼻祖----GoF] Subje ...

  7. 浅析Nordic nRF5 SDK例程架构

    很多刚接触Nordic nRF5 SDK的初学者出于对新平台的不熟悉,会觉得这个SDK很难,本文讲浅析nRF5 SDK中例程的架构,让初学者能够快速上手SDK. 在开始之前,先推荐阅读观看下面这些文章 ...

  8. Go For Web:踏入Web大门的第一步——Web 的工作方式

    前言: 本文作为解决如何通过 Golang 来编写 Web 应用这个问题的前瞻,对 Golang 中的 Web 基础部分进行一个简单的介绍.目前 Go 拥有成熟的 Http 处理包,所以我们去编写一个 ...

  9. 使用Vue.js实现文字跑马灯效果

    实现文字跑马灯效果,首先用到 substring()截取 和 setInterval计时器 clearInterval()清除计时器 效果如下: 实现代码如下: <!DOCTYPE html&g ...

  10. 31-dll

    webpack.dll.js /** * 使用dll技术,对某些库(第三方库:jquery.react.vue...)进行单独打包 * 当你运行 webpack 时,默认查找 webpack.conf ...