一、 自定义指令

如何:

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的指令以及组件化开发的更多相关文章

  1. vue(9)—— 组件化开发 - webpack(3)

    前面两个终于把webpack相关配置解析完了.现在终于进入vue的开发了 vue组件化开发预热 前期准备 创建如下项目: app.js: footer.js: main.js: webpack.con ...

  2. vue(8)—— 组件化开发 - webpack(2)

    webpack的常用loder和插件 loder和插件是什么,现在暂且不表,看到后面你就懂了 引入css问题 直接用link标签导入css 在前面的 vue(7)—— 组件化开发 — webpack( ...

  3. Vue全家桶之组件化开发

    Vue全家桶之组件化开发   一.组件 组件 (Component) 是 Vue.js 最强大的功能之一 组件可以扩展 HTML 元素,封装可重用的代码   二. 组件注册 2.1 全局注册 Vue. ...

  4. vue项目中使用组件化开发

    最近在使用vue-cli结合webpack打包工具开发一个后台管理系统,使用vue难免需要运用组件化思想,而这也正是vue的一大特点. 在之前做的vue项目中,稍微有一点组件化的思想,可能是对组件化不 ...

  5. vue(7)—— 组件化开发 — webpack(1)

    引子 在研究完前面的vue开发后,其实已经可以自己开发点东西了,靠前面的指令集,组件,还有vue-router,还有异步请求这些知识点,是完全可以开发出来的,完全可以达到时下前后端分离的效果. 但是, ...

  6. day69:Vue:组件化开发&Vue-Router&Vue-client

    目录 组件化开发 1.什么是组件? 2.局部组件 3.全局组件 4.父组件向子组件传值 5.子组件往父组件传值 6.平行组件传值 Vue-Router的使用 Vue自动化工具:Vue-Client 组 ...

  7. webpack4.5.0+vue2.5.16+vue-loader 实战组件化开发案例以及版本问题中踩的一些大坑!!!

    一 vue-loader 我们先不管脚手架,只说vue-loader,简单讲就是可将.vue文件打包,实现组件化开发,即一个.vue文件就是一个组件,开发中只需要引入这个.vue组件就可以了! 然后. ...

  8. vue.js组件化开发实践

    前言 公司目前制作一个H5活动,特别是有一定统一结构的活动,都要码一个重复的轮子.后来接到一个基于模板的活动设计系统的需求,便有了下面的内容.借油开车. 组件化 需求一到,接就是怎么实现,技术选型自然 ...

  9. vue组件化开发实践

    前言 公司目前制作一个H5活动,特别是有一定统一结构的活动,都要码一个重复的轮子.后来接到一个基于模板的活动设计系统的需求,便有了一下的内容.首先会对使用Vue进行开发的一些前期需要的技术储备进行简单 ...

随机推荐

  1. tp5中使用中间控制器代理路由,以避免创建过多的无用控制器方法

    在写项目的时候偶尔会加载一些不需要传递参数的静态视图,例如 class Index extends Common { public function index() { return $this-&g ...

  2. Linux上的Nginx上设置支持PHP的解析

    当前的运行环境为,PHP7.2.2以 FastCGI 模式运行,默认端口为:9000,Nginx1.15.6 打开nginx配置文件 vi /usr/local/nginx/conf/nginx.co ...

  3. Maya零基础新手入门教程第一部分:界面

    第1步:菜单 如果您曾经使用过一个软件,那么您将习惯菜单!在Maya中,菜单包含用于在场景中工作的工具和操作.与大多数程序一样,主菜单位于Maya窗口的顶部,然后还有面板和选项窗口的单独菜单.您还可以 ...

  4. 《Java编程思想》——初始化与清理(一)读书笔记

    第一次写这个,这一章都用word写的,结果复制过来没图片....只能上传word文档了.以后改用markdown比较好 word文档地址:<Java编程思想>--初始化与清理(一)读书笔记

  5. Flask中g对象,以及g,session,flash之间的区别

    一.g对象的使用 专门用来存储用户信息的g对象,g的全称的为global g对象在一次请求中的所有的代码的地方,都是可以使用的 g对象的使用: 设置:g.变量名= 变量值 获取:g.name 注意:g ...

  6. AWVS安全渗透扫描

    1.打开软件,点击New Scan 2.在website url中输入被扫描的网址,点击next 3.在scanning profile中选择测试的漏洞类型,默认选择default(默认) 在scan ...

  7. VirtualBox for Mac 6.0.14 开源免费虚拟机方案

    VirtualBox for mac是一款开源虚拟机软件,你可以利用该软件在Mac OS平台上运行Windows软件,即可以在一定程度上弥补Mac OS平台软件不足的劣势,玩家也可以获得Windows ...

  8. win2008加入域控之尝试解析加入域中域控制器的dns名称失败解决办法

    记录下今天遇到以前没遇到的问题 加入域的时候提示“尝试解析加入域中控制器的DNS”名称失败 可能的原因: 如果确认dns没问题 dc正常访问,那可能就是因为域控制器无法向dns注册srv记录. SRV ...

  9. HMLT clear 属性

    原文 : http://www.zhangxinxu.com/wordpress/2014/06/understand-css-clear-left-right-and-use/ clear 的四个值 ...

  10. 实用---java保留小数点后位数以及输出反转数字

    //方法一double b = 8.0/3.0; //与C语言不同,此处8.0和8有所区分 String format = String.format("%.2f,b"); //表 ...