vue

作者: 酒暖花深Q | 来源:发表于2018-08-03 16:09 被阅读0次

    1.mvc

    • m:model 数据模型
    • v:view 视图
    • c:controller业务逻辑层

    2.安装vue-cli

    • 安装node 查看node版本号 node -v
    • 安装vue脚手架:npm install -g vuecli
      (注意:--global 简写 -g全局安装 ,--save/--save-dev简写-s,局部安装)
    • 切换到项目所在的文件夹,如e: 回车 cd vue回车
    • 初始化项目 vue init webpack douban ,douban为项目文件名
    • 输入Y回车,后面三步输入n回车
    • 切换至项目 如 cd douban
    • 安装项目依赖 npm install 回车等待安装
    • 运行项目:npm run dev

    3.指令

    • v-text
    <span v-text="msg"></span>
    <!-- 和下面的一样 -->
    <span>{{msg}}</span>
    
    • v-show
    根据表达式之真假值,切换元素的 display CSS 属性。
    
    • v-if
    根据表达式的值的真假条件渲染元素。在切换时元素及它的数据绑定 / 组件被销毁并重建。
    
    • v-else
    为 v-if 或者 v-else-if 添加“else 块”。
    
    • v-for
    循环渲染
    <div v-for="(item,index) in items">
      {{ item.text }}
    </div>
    
    • v-on
    <!-- 方法处理器 -->
    <button v-on:click="doThis"></button>
    
    <!-- 缩写 -->
    <button @click="doThis"></button>
    
    • v-model
    在表单控件或者组件上创建双向绑定。
    
    • v-cloak
    [v-cloak] {
      display: none;
    }
    
    <div v-cloak>
      {{ message }}
    </div>
    

    4.生命周期(8个)

    生命周期指的是实例在创建前经过的一系列初始化过程,在生命周期中被调用的函数叫做生命周期钩子

    • beforeCreate 创建之前
    • created 创建完成
    • beforeMount 挂载之前
    • mounted 挂载完成
    • beforeUpdate 改变之前
    • updated 改变完成
    • beforeDestroy 销毁之前
    • destroyed 销毁完成

    5.交互

    • get
    this.$http.get(url,{params:{a:1,b:2}})
            .then(function(res){ 成功 }
                 ,function(){ 失败 })
    
    • post
    this.$http.jsonp(url,{params:{a:1,b:2}},{emulateJSON:true})
         .then(function(res){},function(){})
    
    • jsonp
    this.$http.jsonp(url,{params:{a:1,b:2}},{emulateJSON:true})
         .then(function(res){},function(){})
    

    6.路由

    • 引文件
    • 创建模版<template></template>
    • 注册路由所需的模板,把创建的模板和路由关联到一起
    var Home = Vue.extend({
        template:"#home"
    })
    
    • 配置路由路径信息
    var arr=[
        {path:'/',component:Home}
    ]
    
    • 添加路由配置项
    router-link to
    router-view
    
    var vm = new Vue({
        el:'#app',
        router: router
    })
    
    var router = new VueRouter({
        routes: arr
     })
    
    var arr = [
        {path:'/home',component:Home},
        {path:'/news',component:News},
        {path:'/hot',component:Hot}
    ]
     var Home = Vue.extend({
        template:'#home'
    })
    
    <template id="home">
        <div>
            <h1>home</h1>
        </div>
    </template>
    
    • 路由重定向
    this.$router.push('/home')
    
    • 二级路由
    //传递参数:
    <router-link to="/news/001"></router-link>
    //接收参数:
    $route.params.id
    

    7.axios

    // 该文件专门用于调接口数据
    
    // 1.引入axios
    import axios from 'axios'
    
    // 2.设置基础路径
    axios.defaults.baseURL='src/data';    // http://localhost:2333
    
    // 3.引入参数处理模块
    var qs=require('qs');
    
    // 声明一个名字为getNewsList的函数,params是函数中的参数
    // export导出
    export const getNewsList=(params)=>{     // params是参数对象,qs会对参数对象进行处理
      return axios.get('/newslist.json',qs.stringify(params)).then(res=>res.data)
    };
    
    // var getNewsList=function (parmas) {
    //   return axios.get('',qs.stringify(params)).then(res=>res.data)
    // };
    
    export const getVideoItem=(params)=>{
        return axios.get('/video.json',qs.stringify(params)).then(res=>res.data)
    };
    

    相关文章

      网友评论

          本文标题:vue

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