Vue的指令以及组件化开发
一、 自定义指令
如何:
1. 创建指令
Vue.directive("指令名",{
inserted(elem){//指令所在的元素被加载到DOM树上后自动执行指令
//elem会自动获得指令所在的当前元素
对elem执行DOM操作!
}
})
2. 使用指令: <ANY v-指令名>
2、Axios
什么是: 专门发送http请求的函数库
为什么: ajax
1. 自己封装函数:
2. jQuery: $.ajax() 小题大做
3. Vue有一个组件resource,已不推荐使用
4. Axios 官方推荐
何时: 只要在vue中发送ajax请求都用axios
如何:
1. 引入: axios.min.js
2. 发送2种请求:
get请求:
axios.get("url",{
params:{
参数:值
}
}).then(res=>{
获得服务端返回的结果: res.data
})
post请求:
axios.post("url","变量=值&变量=值&...").then(res=>{...})
三、组件化开发
什么是组件: 拥有专属的HTML,CSS,JS和数据的页面独立区域
什么是组件化: 今后所有页面都是由多个组件组成的
每定义一个网页,都要先划分组件结构,再分别编写每个组件
为什么:
1. 重用
2. 便于大项目的分工协作
3. 松散耦合
如何:
1. 创建组件:
每个组件包含三部分:
HTML: 独立的HTML片段:
<template id="tplxxx"></template>
<template>是HTML5中新增的专门保存一段隐藏的HTML片段的元素——专门为框架保存HTML模板
JS: <script>
Vue.component("组件名",{
//和new Vue()极其相似
template:"#tplxxx", //代替了el,每创建一个组件的副本,就自动复制一次模板中的html片段
data:function(){//每创建一个组件的副本,就调用一次data(),为当前组件创建专属的模型数据data
return {
count:1
}
},
//其余和new Vue()完全一样
})
CSS: <style> 暂时不关心
2. 使用组件:
组件名其实就是一个标签名
只要在主内容中,添加一个<组件名></组件名>,运行时Vue就会用组件的template代替<组件名>标签所在位置
组件分类:
1. new Vue({ ——根组件
el:"#app",
data:{}
})
2. Vue.component("组件名",{——全局组件: 可在任何位置随意使用的组件
template:"#tplxxx",
data:function(){ return {} }
})
3. 子组件: 仅限于在某个父组件内才能使用的组件
如何: 3步:
1. 只要将Vue.component降级为普通对象
强调: 变量名最好是将来组件标签名的驼峰方式
2. 在父组件中添加components属性: {
子组件变量名, 子组件变量名, //ES6简写
}
Vue会将驼峰命名的组件名,转为小写,并用-分隔
比如: todoAdd -> todo-add
todoList -> todo-list
组件间传递数据:
父子间:
1. 父->子:
为什么: Vue中父组件的数据模型是专属的,子组件默认不能使用父组件的数据
解决: 2步:
1. 子组件:
var 子组件={
template:"xxx",
props:["变量", ... ] //声明一个内外两用的变量
//对外: 父元素可为其绑定数据
//对内: 相当于data:{ 变量 }
}
<template id="tpl子组件">
{{变量}} <ANY :属性="变量"
</template>
2. 父组件:
<template id="tpl父组件">
<子组件 :变量="模型变量"></子组件>
父组件将自己的模型变量的值传递给子组件的变量属性,子组件就获得了父组件的数据
2. 子->父:
1. 父组件: 在子组件身上提前定义自定义事件和处理函数:
<template id="tpl父组件">
<子组件 @自定义事件="父的处理函数"//不要加()
//当有人触发自定义事件时,自动执行父组件中的处理函数,修改父组件自己的数据
父组件{
...
methods:{
处理函数(形参) {//形参会收到子传来的参数
//操作父组件中的数据
}
}
}
2. 子组件:
任何时候都可以:
this.$emit("父给子定义的事件名", 实参)
意为触发父给子提前定义的事件,并自动引发执行父的处理函数。
Vue的指令以及组件化开发的更多相关文章
- vue(9)—— 组件化开发 - webpack(3)
前面两个终于把webpack相关配置解析完了.现在终于进入vue的开发了 vue组件化开发预热 前期准备 创建如下项目: app.js: footer.js: main.js: webpack.con ...
- vue(8)—— 组件化开发 - webpack(2)
webpack的常用loder和插件 loder和插件是什么,现在暂且不表,看到后面你就懂了 引入css问题 直接用link标签导入css 在前面的 vue(7)—— 组件化开发 — webpack( ...
- Vue全家桶之组件化开发
Vue全家桶之组件化开发 一.组件 组件 (Component) 是 Vue.js 最强大的功能之一 组件可以扩展 HTML 元素,封装可重用的代码 二. 组件注册 2.1 全局注册 Vue. ...
- vue项目中使用组件化开发
最近在使用vue-cli结合webpack打包工具开发一个后台管理系统,使用vue难免需要运用组件化思想,而这也正是vue的一大特点. 在之前做的vue项目中,稍微有一点组件化的思想,可能是对组件化不 ...
- vue(7)—— 组件化开发 — webpack(1)
引子 在研究完前面的vue开发后,其实已经可以自己开发点东西了,靠前面的指令集,组件,还有vue-router,还有异步请求这些知识点,是完全可以开发出来的,完全可以达到时下前后端分离的效果. 但是, ...
- day69:Vue:组件化开发&Vue-Router&Vue-client
目录 组件化开发 1.什么是组件? 2.局部组件 3.全局组件 4.父组件向子组件传值 5.子组件往父组件传值 6.平行组件传值 Vue-Router的使用 Vue自动化工具:Vue-Client 组 ...
- webpack4.5.0+vue2.5.16+vue-loader 实战组件化开发案例以及版本问题中踩的一些大坑!!!
一 vue-loader 我们先不管脚手架,只说vue-loader,简单讲就是可将.vue文件打包,实现组件化开发,即一个.vue文件就是一个组件,开发中只需要引入这个.vue组件就可以了! 然后. ...
- vue.js组件化开发实践
前言 公司目前制作一个H5活动,特别是有一定统一结构的活动,都要码一个重复的轮子.后来接到一个基于模板的活动设计系统的需求,便有了下面的内容.借油开车. 组件化 需求一到,接就是怎么实现,技术选型自然 ...
- vue组件化开发实践
前言 公司目前制作一个H5活动,特别是有一定统一结构的活动,都要码一个重复的轮子.后来接到一个基于模板的活动设计系统的需求,便有了一下的内容.首先会对使用Vue进行开发的一些前期需要的技术储备进行简单 ...
随机推荐
- 洛谷 P4170 [CQOI2007]涂色
题目描述 假设你有一条长度为5的木版,初始时没有涂过任何颜色.你希望把它的5个单位长度分别涂上红.绿.蓝.绿.红色,用一个长度为5的字符串表示这个目标:RGBGR. 每次你可以把一段连续的木版涂成一个 ...
- NOIP2014联合权值
无向连通图G有n个点,n-1条边.点从1到n依次编号,编号为i的点的权值为Wi ,每条边的长度均为1.图上两点(u, v)的距离定义为u点到v点的最短距离.对于图G上的点对(u, v),若它们的距离 ...
- Django-admin站点管理的详细使用
使用Django的管理模块,需要按照如下步骤操作: 管理界面本地化 创建管理员 注册模型类 自定义管理页面 1 管理界面本地化 在settings.py中设置语言和时区 LANGUAGE_CODE = ...
- 实验吧之【拐弯抹角】(url伪静态)
题目地址:http://ctf5.shiyanbar.com/indirection/ 打开后给了源码 <?php // code by SEC@USTC echo '<html>& ...
- vue —— Toast 内 加变量
toast正常使用: 在页面内引入: import { Toast } from 'mint-ui' 使用的时候,简单到飞起: Toast('领取成功'); 而如果想在toast中加入变量,也很简单: ...
- MySQL注入--Payload
MySQL注入--Payload Mirror王宇阳 2019-10-22 SQL的注入流程一般如下: 1.判断是否有SQL注入漏洞(判断注入点) 2.判断数据库的系统架构.数据库名.web应用类型等 ...
- java学习-IDEA相关使用
1.配置git与github(用于将代码提交到GitHub) 添加自己的github账号 2.提交代码到github 登录https://github.com,即可看到刚刚提交到github的代码仓库 ...
- 04jmeter-Concurrency Thread Group
1.下载插件Custom Thread Groups:参照:00jmeter安装相关 2.添加并发线程组 场景举例: 10个线程2分钟的加速时间5个加速步骤持有目标速率2分钟: 即: 2分钟除以5步, ...
- 19.Linux进程管理概述
1.进程基本概述 当我们运行一个程序,那么我们将运行的程序叫进程. PS1: 当程序运行为进程后,系统会为该进程分配内存,以及进程运行的身份和权限. PS2: 在进程运行的过程中,服务器上会有各种状态 ...
- fullpage.js的引入方法
1.先到官网上(https://github.com/alvarotrigo/fullPage.js)下载压缩包 2.引入文件 3.布局基本页面结构 4.实现全屏滚动(JS代码) <script ...