美文网首页
Vue.js中级

Vue.js中级

作者: 磨陀货_ | 来源:发表于2019-09-25 19:49 被阅读0次

1.Vue事件

  语法<v-on:click>-----简写---<@click>

<!DOCTYPE html>
<html lang="en" xmlns:v-on="http://www.w3.org/1999/xhtml">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="../node_modules/vue/dist/vue.min.js"></script>
</head>
<body>
  <div id="app">
    {{mun}}
    <!--v-on:click=""绑定事件-->
    <button v-on:click="mun++">点我+1</button>
    <!--简写-->
    <button @click="mun++">增加</button>
    <br>
    <button @click="click01()">调用</button>
    <button @click="click02('嗨')">调用方法</button>
    <input type="text" @change="click03()">
  </div>
</body>
<script>
  new Vue({
    el:"#app",
    data:{
      mun:"1"
    },
    methods:{
      click01:function(){
        alert("我最帅")
      },
      click02:function(message){
        alert(this+"我好帅"+message)
      },
      click03:function(){
        console.log("提示:输入东西了")
      }
    }
  })
</script>
</html>
  • 效果
    点击(点我+1、增加)数字1会变化
    点击调用弹出我最帅、点击调用方法弹出变量+我好帅+参数
    text输入框输出东西时后台有提示

2.Vue计算属性&watch

 2.1 computed:{}

  • 如果前段传过来一个毫秒值,我们怎么展示?不能直接毫秒给客户看,所以我们要计算一下
    月份要加一。国外计算和国内不一样
<!DOCTYPE html>
<html lang="en" xmlns:v-on="http://www.w3.org/1999/xhtml">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="../node_modules/vue/dist/vue.min.js"></script>
</head>
<body>
    <div id="app">
        {{birthday}}毫秒
        <br>
        {{new Date(birthday).getFullYear()+'-'+new Date(birthday).getMonth()+'-'+new Date(birthday).getDay()}}
        <br>
        {{birth}}
    </div>
</body>
<script>
    new Vue({
      el:"#app",
      data:{
        birthday:1529032123201
      },
      computed:{
        birth(){
          let data = new Date();
          return data.getFullYear()+"年--"+data.getMonth()+"月--"+data.getDate()+"日--星期"+data.getDay()
        }
      }
    })
</script>
</html>

 2.2 Watch

  • 一旦改变就会触发Watch方法
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="../node_modules/vue/dist/vue.min.js"></script>
</head>
<body>
  <div id="app">
      <input type="text" v-model="message">
  </div>
</body>
<script>
    new Vue({
        el:"#app",//挂载
        data:{
          message:""
        },
        watch:{
          message(newValue,oldValue){
            console.log(newValue,oldValue)
          }
        }
    })
</script>
</html>


3.Vue组件

重要功能:提取重复的HTML代码,以标签的形式使用

  • 组件使用来完成特定功能的一个自定义的HTML标签

 3.1 局部组件---当前Vue挂载的对象中使用

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="../node_modules/vue/dist/vue.min.js"></script>
</head>
<body>
     <div id="app">
          <mycomp></mycomp>
     </div>
     <div id="app2">
          <mycomp></mycomp>
     </div>
</body>
<script>
    new Vue({
        el:"#app",
        //components组件属性--局部组件:只能在当前div挂载id中使用
        components:{
            //定义一个组件
            "mycomp":{
                template:"<h5>{{message}}</h5>",
                data:function(){
                    return{
                        "message":"你好","message2":{}
                    }
                }
            }
        }
    });
    new Vue({
        el:"#app2"
    })
</script>
</html>

 3.2 全局组件

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="../node_modules/vue/dist/vue.min.js"></script>
</head>
<body>
    <div id="app">
          <mycomp></mycomp>
    </div>
    <div id="app2">
          <mycomp></mycomp>
    </div>
</body>
    <script>
        var html = {
          "template":"<h4>这周任务--等十一</h4>"
        }
        Vue.component("mycomp",html)
        new Vue({
          el:"#app",
        });
        new Vue({
          el:"#app2"
        })
    </script>
</html>

 3.3 <template>[模板]-----<script type="text/template">

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="../node_modules/vue/dist/vue.min.js"></script>
</head>
<body>
    <div id="app">
          <mycomp></mycomp>
          <mycomp2></mycomp2>
    </div>
    <template id="mytemplate">
          <h3>女朋友和英雄联盟选一个</h3>
    </template>
    <script type="text/template" id="mytemplate2">
          <h3>我亚索贼溜~哈萨给!</h3>
    </script>
</body>
    <script>
          Vue.component("mycomp",{
                template:"#mytemplate"
          });
          Vue.component("mycomp2",{
                template:"#mytemplate2"
          });
          new Vue({
                el:"#app",
          })
    </script>
</html>

 3.4 外部工共抽取

  • 建新包---新建js页面
const shtml = {
  template:"<h3>我亚索贼溜~哈萨给!</h3>>"
}
  • 随意搞一个html,引用
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
  <script src="../../node_modules/vue/dist/vue.min.js"></script>
</head>
<body>
    <div id="app">
          <shtml></shtml>
    </div>
</body>
    <script>
          new Vue({
                el:"#app",
                components:{
                      "shtml":()=>import("s.js")
                }
          })
    </script>
</html>

 3.5 函数--data【只能写在方法中】


4.路由--router

  • 输入一个url 我把你路由到对应的template(页面)

 4.1 首先要安装,路由不是Vue自带的

在Terminal输入npm install vue-router



 4.2 使用---引入js---绑定(vueRouter对象/路由规则)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
  <script src="../node_modules/vue/dist/vue.min.js"></script>
  <script src="../node_modules/vue-router/dist/vue-router.min.js"></script>
</head>
<body>
    <div id="app">
            <router-view></router-view>
            <router-link to="/product">答案</router-link>
    </div>
</body>
    <script>
          var index = Vue.component("index",{template:"<h2>女朋友和英雄联盟选一个</h2>>"});
          var product = Vue.component("product",{template:"<h2>我亚索贼溜~哈萨给!</h2>"});
          var router = new VueRouter({
          //定义路由规则
                routes:[
                  {
                    path:"/",
                    component:index
                  },
                  {
                    path:"/product",
                    component:product
                  }
                ]
          });
          new Vue({
            el:"#app",
            router:router
          })
    </script>
</html>

点击答案

5.webpack---前段打包工具

教学地址:


6.Vue-cli(脚手架)

安装脚手架教学:


7.自定义访问一波

8.关闭服务器

Ctrl+C


相关文章

  • Vue.js中级

    1.Vue事件   语法-----简写---<@click> 效果点击(点我+1、增加)数...

  • Vue.js动态组件解析

    此前的Vue.js系列文章: Vue.js开发常见问题解析 Vue.js常用开发知识简要入门(一) Vue.js常...

  • 【MAC 上学习 Vue】Day 1. 创建 Hello Wor

    下载 Vue.js Vue.js 开发版本下载地址为:https://vuejs.org/js/vue.js 安装...

  • Vue 循环、点击、双向绑定

    一、了解 Vue.js 1 Vue.js是什么? Vue.js是一套用于构建用户界面的渐进式框架。Vue.js通过...

  • Vue.js入门

    Vue笔记系列2、Vue.js渐进3、Vue.js进阶 Vue.js的概述 如官网所说,Vue.js是一款轻量级的...

  • Vue起步

    Vue.js官网 Vue.js教程 1. Vue.js起步 Vue.js有两种方式:引入CDN方式或使用命令行工具...

  • MAC上学习Vue---Day1. 创建Hello World

    下载Vue.js Vue.js开发版本地址为: https://vuejs.org/js/vue.js 安装VS ...

  • 一.Vue.js起步

    1 Vue.js Vue.js官网 Vue.js菜鸟教程 2 MVVM模式 MVC:Model-Viel-Cont...

  • Vue.js 第一天

    Vue.js 一、Vue.js简介 1.Vue.js 是什么 vue.js 也称为Vue,读音 /vju:/ ,类...

  • 《Vue.js 实战》基础篇(上)

    本章内容:认识 Vue.js、数据绑定、计算属性、内置指令 一、初始 Vue.js 1.1 Vue.js 是什么 ...

网友评论

      本文标题:Vue.js中级

      本文链接:https://www.haomeiwen.com/subject/zfsvuctx.html