Vue.js的从入门到放弃进击录(一)

感谢我们项目组给机会,让我学了Vue.js,打开新世界大门。。。哈哈哈,也没有那么夸张,不过学下来确实觉得入门还是蛮容易的。我大概前前后后学了有一个月的样子,一开始只是比较急着可以写东西出来,后来因为分配到九月份的分享,项目组也买了vue相关的书籍,所以又进行了比较深入的一个学习。

====================================================嘀 哩哩 哩~========================================================

按照惯例,我学习过程用到的资料:

1.vue官网:https://cn.vuejs.org/v2/guide/installation.html   (官网已经很友好了,很有参考价值的)

2.简书vue的入坑教程:http://blog.csdn.net/sinat_17775997/article/details/77824878   (拉到下面,开始看 入坑系列就可以了)

3.智能社陈潇冰老师的vue视频:链接:http://pan.baidu.com/s/1sla6lkh 密码:72ep  (老师讲的很基础,还不错。我基本都听完了,对vue有较好理解,不过老师是凭经验讲的,看完最好再看看书,就比较完美)

4.曾经超火的60分钟入门    http://www.cnblogs.com/keepfool/p/5625583.html   (里面的内容很详细,不够完美的地方是这个教程是基于vue1.x版本的,基础的部分基本2.0也适用,但到过滤器这些部分会有比较大出入,当时我也是学到这里懵逼了弃了~有点可惜)

===================================================哒哒哒====分割=======================================================

学习Vue要准备的环境:

1.我用的是Sublime Text3 做编辑器 :  链接:http://pan.baidu.com/s/1dFITZnb 密码:bwfy

2.安装node.js   (这个直接去官网下载安装就可以了,到后面安装脚手架vue-cli要用到的)传送门:http://nodejs.cn/download/

=======================================================嘀嘀嘀======分割==================================================

现在我们开始正式一个坑一个坑学习vue

1.建立第一个vue页面

准备:①下载vue.js   (进入官网https://cn.vuejs.org/v2/guide/installation.html)选择“开发版本”,点击即可下载到vue.js

②打开sublime text3,新建一个html页面。快速建立一个html页面的快捷键(同时按住shift+ctrl+p,然后看到顶部会弹出框,输入   sshtml ,按回车键,这时候虽然没有看到什么变化,然后输入感叹号  ! ,然后按 Tab  键。完成。如果没出来,检查输入感叹号 ! 是不是英文输入法)。

写代码:第一个vue页面

效果图:

代码:(这是一个双向数据绑定的案例)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8" />
    <title>Vue-Hello</title>
</head>
<body>
    <div id="app">
        <p>{{message}}</p>   <!-- 数据显示 -->
        <input v-model = "message">  <!-- 绑定数据 -->
    </div>

    <script src="vue.js"></script>    /*引入vue*/
    <script>
    // vue实例
        new Vue({
            el:‘#app‘,
            data:{
                message:‘Hello Vue!‘  /*message本体*/
            }
        })
    </script>
</body>
</html>

hello.html

2.在vue页面上练习一下vue的常用指令吧。

vue的常用指令有:(简书上截图过来的,更多指令在官网有:https://cn.vuejs.org/v2/api/#%E6%8C%87%E4%BB%A4

下面我们来挑几个练练吧。

①v-bind(简写为 :)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8" />
    <title>v-bind</title>
</head>
<style>
        .red{
            color: red;
        }
        .blue{
            background: blue;
        }
    </style>
<body>
    <div id="app" >
     <p :class="json">{{message}}</p>
    </div>

<script src="vue.js"></script>
<script>
    new Vue({
        el:‘#app‘,
        data:{
            message:‘bind‘,
            json:{
                        red:true,
                        blue:true
                    }
        }
    });
</script>
</body>
</html>

bind.html

②v-on(简写为   @  )  +  v-for

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8" />
    <title>v-on</title>
</head>
<body>
    <div id="app">
        <input type="button" value="增加一个bb" v-on:click=‘add‘></input>
        <ul>
        <li v-for=‘v in arr‘>{{v}}</li>
        </ul>
    </div>
</body>
<script src="vue.js"></script>
<script>
    new Vue({
        el:‘#app‘,
        data:{
            arr:[‘a‘,‘b‘,‘c‘]
        },
        methods:{
            add:function(){
                this.arr.push(‘bb‘);
            }
        },
    });
</script>
</html>

on-for.html

③v-text、v-html这两个都是渲染数据。这两种方式跟我们直接用{{msg}}又有什么区别呢。

先来说说{{msg}}跟v-text

用法:

<div >{{msg}}</div>

<div v-text=”msg"></div>

data:{

msg:‘hello,Liz‘

}

上面两个写法都能渲染出msg里面的内容,当加载速度比较慢的时候,使用第一种写法你在浏览器上可能会看到{{msg}},然后才看到渲染出来的数据hello,Liz,但是v-text就没这个问题,你直接看到渲染出来的数据hello,Liz。

v-text跟v-html相比,v-html可以解析html标签,举个栗子

<div v-text="text"></div>

<div v-html="text"></div>

data:{

text:‘<div>hello,liz</div>‘

}

这时候v-text渲染出来就是<div>hello,liz</div>,但是v-html渲染出来的是hello,liz

-----------------------------------------------认真看应该明白这三者了吧,下面给代码跑跑看----------------------

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8" />
    <title>v-text,v-html</title>
</head>
<body>
    <div id="app">
<!--     这组对比{{msg}}和v-text用法 -->
        <div>{{msg}}</div>
        <div v-text="msg"></div>

<!--     这组对比v-html和v-text用法 -->
        <div v-text="text"></div>
        <div v-html="text"></div>
    </div>

    <script src="vue.js"></script>
    <script>
        new Vue({
            el:‘#app‘,
            data:{
                msg:‘hello,Liz‘,
                text:‘<div>hello,liz</div>‘
            }
        });
    </script>
</body>
</html>

v-text+v-html.html

3.vue的生命周期,钩子函数。左边是官方给的图例(看不清建议去官网看看),右边是对钩子函数的解释。生命周期是蛮重要的,在后面的开发中你要控制你的事件、数据什么时候进行,都要用到。现在先理解一下,以后用的时候比较清晰。

               

示例代码理解(运行的时候打开浏览器调试查看它的周期。调试快捷键F12,笔记本按 Fn+F12)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>life-cycle</title>
    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
    <meta name="apple-mobile-web-app-capable" content="yes">
    <meta name="apple-mobile-web-app-status-bar-style" content="black">
    <style>

    </style>
    <script src="vue.js"></script>
    <script>

        window.onload=function(){
            new Vue({
                el:‘#box‘,
                data:{
                    msg:‘welcome vue2.0‘
                },
                methods:{
                    update(){
                        this.msg=‘大家好‘;
                    },
                    destroy(){
                        this.$destroy();
                    }
                },
                beforeCreate(){
                    console.log(‘组件实例刚刚被创建‘);
                },
                created(){
                    console.log(‘实例已经创建完成‘);
                },
                beforeMount(){
                    console.log(‘模板编译之前‘);
                },
                mounted(){
                    console.log(‘模板编译完成‘);
                },
                beforeUpdate(){
                    console.log(‘组件更新之前‘);
                },
                updated(){
                    console.log(‘组件更新完毕‘);
                },
                beforeDestroy(){
                    console.log(‘组件销毁之前‘);
                },
                destroyed(){
                    console.log(‘组件销毁之后‘);
                }
            });
        };
    </script>
</head>
<body>
    <div id="box">
        <input type="button" value="更新数据" @click="update">
        <input type="button" value="销毁组件" @click="destroy">
        {{msg}}
    </div>
</body>
</html>

lifeCycle.html

4.vue组件定义

核心部分,先要注册组件。  Vue.component(‘组件名字‘,{内容});

然后在html中使用组件标签。组件标签就是你取的组件名字加上尖括号。    <组件名字></组件名字>

(这里解释一下,template其实就是我注册组件的时候里面的内容中的template,他们之间的关系通过 id="aaa"来维系。)

看看代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>component</title>
    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
    <meta name="apple-mobile-web-app-capable" content="yes">
    <meta name="apple-mobile-web-app-status-bar-style" content="black">
    <style>

    </style>
    <script src="vue.js"></script>
    <script>
    // 注册
        Vue.component(‘my-component‘, {   /*定义组件名称和内容*/
          template:‘#aaa‘    /*调用id为aaa的模板*/
        });

        window.onload=function(){
                new Vue({
                    el:‘#box‘,
                    data:{
                        msg:‘welcome vue2.0‘
                    }
                });
            };
    </script>
</head>
<body>
    <template id="aaa">
        <div>
            <h3>我是组件</h3>
        </div>
    </template>
    <div id="box">
        <my-component></my-component>  <!-- 在页面上使用组件标签 -->
        {{msg}}
    </div>
</body>
</html>

components.html

5.过滤器

本来在vue1.x的版本中,自带了很多好用的过滤器的,但是尤大大为了框架长久发展,决定删除掉,全部交给开发者去自定义。这里就给一个自定义时间过滤器的实例。

我们在html中调用过滤器

然后在script中进行定义过滤器

代码在这里

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8" />
    <title>草稿</title>
</head>
<body>
    <div id="app">
        {{a | toDou}}   <!-- 使用过滤器 -->
    </div>
</body>
<script src="vue.js"></script>
<script>
    //自定义过滤- 时间过滤
   Vue.filter(‘toDou‘,function(input){
    var oDate = new Date(input);
    return oDate.getFullYear()+‘-‘+(oDate.getMonth()+1)+‘-‘+oDate.getDate()+‘‘+oDate.getHours()+‘:‘+oDate.getMinutes()+‘:‘+oDate.getSeconds();
   });

    new Vue({
        el:‘#app‘,
        data:{
            a:Date.now()
        },
    });
</script>
</html>

filter.html

===这里我们定义了组件,过滤器,小结一下。======

其实在vue页面中定义你要的组件也好,过滤器也好,都是要通过vue实例调用这个方法的。总的套路就是

①。在script中定义:Vue.xxx = (‘自定义名字‘,内容)

②。在html代码中使用它

=================================================滴滴  哒~========================

到这里,基础部分就暂告一段落了,是不是很简单。下一篇我们来介绍如何用vue-cli来搭建一个工程项目。会有一个比较大的跨度噢~加油啦~biu~

时间: 2024-10-01 11:00:58

Vue.js的从入门到放弃进击录(一)的相关文章

Vue.js的从入门到放弃进击录(二)

哇塞,昨晚更新的篇(一)这么多阅读量,看来入坑的人越来越多啦~熬了一个礼拜夜,今天终于生病惹~国庆要肥家咯·所以把篇(二)也更完.希望各位入坑的小伙伴能少跳几个坑呗.如果有什么不对的地方也欢迎讨论指正.毕竟这些博客我是留着以后翻身成大佬以后留给我的小弟们用的,哈哈哈~ =======================================================比哈特~=================================================== 惯例惯例

vue.js的快速入门使用

1. vue.js的快速入门使用 1.1 vue.js库的下载 vue.js是目前前端web开发最流行的工具库,由尤雨溪在2014年2月发布的. 另外几个常见的工具库:react.js /angular.js 官方网站: ? 中文:https://cn.vuejs.org/ ? 英文:https://vuejs.org/ 官方文档:https://cn.vuejs.org/v2/guide/ vue.js目前有1.x.2.x和3.x 版本,我们学习2.x版本的. 1.2 vue.js库的基本使用

Vue.js2.0从入门到放弃---入门实例

最近,vue.js越来越火.在这样的大浪潮下,我也开始进入vue的学习行列中,在网上也搜了很多教程,按着教程来做,也总会出现这样那样的问题(坑啊,由于网上那些教程都是Vue.js 1.x版本的,现在用Vue.js 的构建工具都已经升级到2.0版本了),经过了一段时间的摸索和看官方的教程和api,才了解到2.0版本在1.0版本的基础上做了好多调整,废弃了好多api...废话不多说了,把我踩过的坑,在这里跟大家说说,希望对初学者有所帮助.ps:高手请绕道. 既然是入门实例,那肯定从最基础的开始了,希

转-Vue.js2.0从入门到放弃---入门实例(一)

http://blog.csdn.net/u013182762/article/details/53021374 标签: Vue.jsVue.js 2.0Vue.js入门实例Vue.js 2.0教程 2016-11-03 14:40 21431人阅读 评论(9) 收藏 举报 版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[+] 最 近,vue.js越来越火.在这样的大浪潮下,我也开始进入vue的学习行列中,在网上也搜了很多教程,按着教程来做,也总会出现这样那样的问题(坑啊, 由

Vue.js——组件快速入门(上篇)

Vue.js--60分钟组件快速入门(上篇) 组件简介 组件系统是Vue.js其中一个重要的概念,它提供了一种抽象,让我们可以使用独立可复用的小组件来构建大型应用,任意类型的应用界面都可以抽象为一个组件树: 那么什么是组件呢?组件可以扩展HTML元素,封装可重用的HTML代码,我们可以将组件看作自定义的HTML元素. 本文的Demo和源代码原作者已放到GitHub!(所有示例都放在GitHub Pages上了,请访问https://github.com/keepfool/vue-tutorial

vue.js学习之入门实例

之前一直看过vue.js官网api,但是很少实践,这里抽出时间谢了个入门级的demo,记录下一些知识点,防止后续踩坑,牵扯到的的知识点:vue.vue-cli.vue-router.webpack等. 首先看下实现的效果: 源码下载戳这里:源码 1.使用vue-cli脚手架创建项目 vue-cli init webpack tll 备注:使用webpack模板创建名为tll的项目,这里会按照提示输入一些项目基本配置,比如项目名称.版本号.描述.作者.是否启用eslint校验等等,不知道咋填的直接

一款简单而不失强大的前端框架——【Vue.js的详细入门教程①】

↓— Vue.js框架魅力 —↓ 前言   Vue.js 是一个构建数据驱动的 web 界面的渐进式框架.Vue.js 的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件.Vue 只关注视图层并且采用自底向上增量开发的设计. Vue.js作为一个后起的前端框架,借鉴了Angular .React等现代前端框架/库的诸多特点,取得了相当不错的成绩.Vue.js 自身不是一个全能框架——它只聚焦于视图层.因此它非常容易学习,非常容易与其它库或已有项目整合.另一方面,在与相关工具和支

vue.js自定义指令入门

Vue.js 允许你注册自定义指令,实质上是让你教 Vue 一些新技巧:怎样将数据的变化映射到 DOM 的行为.你可以使用Vue.directive(id, definition)的方法传入指令id和定义对象来注册一个全局自定义指令.定义对象需要提供一些钩子函数(全部可选): bind: 仅调用一次,当指令第一次绑定元素的时候. update: 第一次是紧跟在 bind 之后调用,获得的参数是绑定的初始值:以后每当绑定的值发生变化就会被调用,获得新值与旧值两个参数. unbind:仅调用一次,当

Vue.js—组件快速入门以及Vue路由实例应用

上次我们学习了Vue.js的基础,并且通过综合的小实例进一步的熟悉了Vue.js的基础应用.今天我们就继续讲讲Vue.js的组件,更加深入的了解Vue,js的使用.首先我们先了解一下什么是Vue.js的组件,组件其实就是页面组成的一部分,它是一个具有独立的逻辑和功能或页面,组件可以扩展 HTML 元素,封装可重用的代码.组件系统让我们可以用独立可复用的小组件来构建大型应用,几乎任意类型的应用的界面都可以抽象为一个组件树,如下图: 接下来我们就仔细讲讲组件的使用吧. 1 全局组件 以下就是我们注册