Vue.js初探

在Vue.js的初识篇了解了Vue的内部指令,并做了一些简单的小案例。这一篇来了解Vue的全局API。

Vue的全局API:在构造器外部用Vue提供的API函数来定义新功能。

首先了解一下自定义指令的生命周期

bind:function(){      //被绑定
     console.log(‘ bind: 我被被绑定!‘);
},
inserted:function(){    //绑定到节点
      console.log(‘inserted: 我绑定到节点了!‘);
},
update:function(){    //组件更新
      console.log(‘update: 组件更新了!‘);
},
componentUpdated:function(){  //组件更新完成
      console.log(‘componentUpdated: 组件更新完成了!‘);
},
unbind:function(){    //解绑
      console.log(‘bind: 我已解绑了!‘);
}

Vue.directive 自定义指令

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8" />
    <link rel="stylesheet" href="https://cdn.bootcss.com/bootstrap/4.0.0-alpha.6/css/bootstrap-grid.css" />
    <title>Vue directive</title>
</head>
<body>
    <div class="container">
        <div id="app">
            <h5>{{ message }}</h5>
            <hr />
            <p v-momei=‘color‘ id="Dome">{{ num }}</p>
            <p><button class="btn btn-success" @click="add()">Add</button></p>
        </div>

    </div>
</body>
    <script src="https://unpkg.com/vue"></script>
    <script>
        Vue.directive(‘momei‘,function(el,binding,vnode){
            el.style.color=binding.value;
        });
        var app = new Vue({
            el: ‘#app‘,
            data: {
                message: ‘Hello Vue.js One Day!‘,
                num: 10,
                color: ‘green‘
            },
            methods: {
                add: function() {
                    this.num ++;
                }
            }
        });
    </script>
</html>

自定义指令传入的三个参数:

  el:  指令绑定的元素,可以用来直接操作DOM。

  binding:  一个对象,包含以下属性:

    • name:  指令名,不包括 v- 前缀。
    • value:  指令的绑定值。
    • oldValue:  指令绑定的前一个值,仅在 update 和 componentUpdated 钩子中可用。无论值是否改变都可用。
    • expression:  绑定值的字符串形式。 例如 v-my-directive="1 + 1" , expression 的值是 "1 + 1"
    • arg:  传给指令的参数。例如 v-my-directive:foo, arg 的值是 "foo"
    • modifiers:  一个包含修饰符的对象。 例如: v-my-directive.foo.bar, 修饰符对象 modifiers 的值是 { foo: true, bar: true }

  vnode:  Vue 编译生成的虚拟节点,查阅 VNode API 了解更多详情。

  oldVnode:  上一个虚拟节点,仅在 update 和 componentUpdated 钩子中可用。

除了 el 之外,其它参数都应该是只读的,尽量不要修改他们。如果需要在钩子之间共享数据,建议通过元素的 dataset 来进行。

Vue的生命周期:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8" />
    <link rel="stylesheet" href="https://cdn.bootcss.com/bootstrap/4.0.0-alpha.6/css/bootstrap-grid.css" />
    <title>Vue 生命周期</title>
</head>
<body>
    <div class="container">
        <div id="app">
            <h5>{{ message }}</h5>
            <hr />
            <p>{{ num }}</p>
            <p><button class="btn btn-success" @click="add()">Add</button></p>
        </div>

    </div>
</body>
    <script src="https://unpkg.com/vue"></script>
    <script>
        var app = new Vue({
            el: ‘#app‘,
            data: {
                message: ‘Hello Vue.js ONE Day!‘,
                num: 10,
            },
            methods: {
                add: function() {
                    this.num ++;
                }
            },
            beforeCreate:function(){
                console.log(‘1-beforeCreate 初始化之后‘);
            },
            created:function(){
                console.log(‘2-created 创建完成‘);
            },
            beforeMount:function(){
                console.log(‘3-beforeMount 挂载之前‘);
            },
            mounted:function(){
                console.log(‘4-mounted 被创建‘);
            },
            beforeUpdate:function(){
                console.log(‘5-beforeUpdate 数据更新前‘);
            },
            updated:function(){
                console.log(‘6-updated 被更新后‘);
            },
            activated:function(){
                console.log(‘7-activated‘);
            },
            deactivated:function(){
                console.log(‘8-deactivated‘);
            },
            beforeDestroy:function(){
                console.log(‘9-beforeDestroy 销毁之前‘);
            },
            destroyed:function(){
                console.log(‘10-destroyed 销毁之后‘)
            }
        });
    </script>
</html>

Vue.eRte-a构造器

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8" />
    <link rel="stylesheet" href="https://cdn.bootcss.com/bootstrap/4.0.0-alpha.6/css/bootstrap-grid.css" />
    <title>Vue ERte-a</title>
</head>
<body>
    <div class="container">

        <author></author>

    </div>
</body>
    <script src="https://unpkg.com/vue"></script>
    <script>
        var ERte-a = Vue.eRte-a({
            template: "<p><a :href=‘Url‘>{{Name}}</a></p>",  //模				
时间: 2024-11-13 06:58:21

Vue.js初探的相关文章

Vue.js 入门指南之“前传”(含sublime text 3 配置)

题记:关注Vue.js 很久了,但就是没有动手写过一行代码,今天准备入手,却发现自己比菜鸟还菜,于是四方寻找大牛指点,才终于找到了入门的“入门”,就算是“入门指南”的“前传”吧.此文献给跟我一样“白痴级别”的前端开发人员,大牛请绕过. 1,下载安装Node.js 去 Node.js 官网下载一个Windows环节的安装包 node-v6.2.0-x64.rar 文件,一路安装下去即可.官网访问很慢,可以试试中文网 http://nodejs.cn/ 2,配置Vue环境 一开始看<基于Webpac

Vue.js 入门指南之“前传”

题记:关注Vue.js 很久了,但就是没有动手写过一行代码,今天准备入手,却发现自己比菜鸟还菜,于是四方寻找大牛指点,才终于找到了入门的“入门”,就算是“入门指南”的“前传”吧.此文献给跟我一样“白痴级别”的前端开发人员,大牛请绕过. 1,下载安装Node.js 去 Node.js 官网下载一个Windows环节的安装包 node-v6.2.0-x64.rar 文件,一路安装下去即可.官网访问很慢,可以试试中文网 http://nodejs.cn/ 2,配置Vue环境 一开始看<基于Webpac

vue.js 入门

简单一句话来描述:vue.js是一个前端框架. 官方文档:https://cn.vuejs.org/v2/guide/index.html 虽然,我以前也会改一些前端样式,但主要是基于HTML和CSS,HTML主要控制页面的结构,CSS主要来控制样式.涉及到JavaScript就比较小白了. 我花了一个下午照着官方文档做练习,当然是只创建一个xxx_demo.html文件,在<script></script> 标签对之间写 Vue.js语法.这不算错,但在工程化的今天,这么学得猴年

Vue.js项目模板搭建

前言 从今年(2017年)年初起,我们团队开始引入「Vue.js」开发移动端的产品.作为团队的领头人,我的首要任务就是设计 整体的架构 .一个良好的架构必定是具备丰富的开发经验后才能搭建出来的.虽然我有多年的前端开发经验,但就「Vue.js」来说,仍然是个新手.所幸「Vue.js」有一个配套工具「Vue-CLI」,它提供了一些比较成熟的项目模板,很大程度上降低了上手的难度.然而,很多具体的问题还是要自己思考和解决的. 项目划分 我们公司的H5产品大部分是嵌套在手机客户端里面的页面.每个项目的功能

vue.js路由

Vue.js 路由 Vue.js 路由允许我们通过不同的 URL 访问不同的内容. 通过 Vue.js 可以实现多视图的单页Web应用(single page web application,SPA). Vue.js 路由需要载入 vue-router 库 中文文档地址:vue-router文档. 安装 1.直接下载 / CDN https://unpkg.com/vue-router/dist/vue-router.js NPM 推荐使用淘宝镜像: cnpm install vue-route

【Vue】vue.js常用指令

http://www.cnblogs.com/rik28/p/6024425.html Vue.js的指令是以v-开头的,它们作用于HTML元素,指令提供了一些特殊的特性,将指令绑定在元素上时,指令会为绑定的目标元素添加一些特殊的行为,我们可以将指令看作特殊的HTML特性(attribute). Vue.js提供了一些常用的内置指令,接下来我们将介绍以下几个内置指令: v-if指令 v-show指令 v-else指令 v-for指令 v-bind指令 v-on指令

Vue.js——vue-resource全攻略

概述 上一篇我们介绍了如何将$.ajax和Vue.js结合在一起使用,并实现了一个简单的跨域CURD示例.Vue.js是数据驱动的,这使得我们并不需要直接操作DOM,如果我们不需要使用jQuery的DOM选择器,就没有必要引入jQuery.vue-resource是Vue.js的一款插件,它可以通过XMLHttpRequest或JSONP发起请求并处理响应.也就是说,$.ajax能做的事情,vue-resource插件一样也能做到,而且vue-resource的API更为简洁.另外,vue-re

说说说vue.js中的组

什么是组件:组件是Vue.js最强大的功能之一.组件可以扩展HTML元素,封装可重用的代码.在较高层面上,组件是自定义的元素,vue.js的编辑器为它添加特殊的功能.在某些情况下,组件也可以是原生HTML元素的形式. 如何注册组件? 需要使用vue.extend方法创建一个组件,然后使用Vue.component方法注册组件.Vue.extend方法格式如下: var MyComponent = Vue.extend({ // 选项...后面再介绍 }) 如果想要在其他的地方使用这个创建的组件,

实例分析Vue.js中 computed和method不同机制

在vue.js中,有methods和computed两种方式来动态当作方法来用的 1.首先最明显的不同 就是调用的时候,methods要加上() 2.我们可以使用 methods 来替代 computed,效果上两个都是一样的,但是 computed 是基于它的依赖缓存,只有相关依赖发生改变时才会重新取值. 而使用 methods ,在重新渲染的时候,函数总会重新调用执行 为了方便理解,先上一段源码 <!DOCTYPE html> <html> <head> <m