Vue快速入门开发二

一、Vue组件讲解

template

<div id="app">
<zhang v-bind:"item"></zhang>
</div>
<script src="https://cdn.jsdelivr.net/npm/vue@2.5.21/dist/vue.min.js"></script>
<script>
//定义一个Vue组件component
vue.component( "zhang",{
 props['item']
 template: '<li>Hello</li>'
 });
var vm = new Vue({
 el: "#app"
});
</script>

二、Axios异步通信

主要作用就是实现AJAX异步通信

axios中文网|axios API 中文文档 | axios

<!--引入Js文件-->
<script src="https://cdn.jsdelivr.net/npm/vue@2.5.21/dist/vue.js"</script>
<script src="https://unpkg.com/ axios/dist/axios.min.js"></script>
<script type="text/javascript">
   var vm = new Vue({
     el: '#vue',
     //data:属性: vm
       data(){
            return{
            //请求的返回参数合适,必须和 json字符串一样
                  info:{
                      name: null,

                }
              }
             },
        mounted(){ //钩了函数  链式编程  ES6新特性
          axios.get('../data.json').then(response=>(this.info=response.data));
       }
   });
</script>

三、计算属性computed(缓存)

四、插槽slot

<div id="app">
 <todo>
  <todo-title slot="todo-item"></todo-title>
  <todo-items></todo-items>
 </todo>
</ div>
<script src="https://cdn.jsdelivr.net/npm/vue@2.5.21/dist/vue.min.js"</script>
<script>
 Vue.component( "todo" ,{
   template:
   '<div>\
     <slot name="todo-title"></ slot>\
     <ul>\
        <slot name="todo-item"></ slot>\
     </ul>\
   </div>'
});

 Vue.component( "todo-title" ,{
   props:[title]
   template:'<div>{{title}}</div>'
});

 Vue.component( "todo-item" ,{
   props:[item]
   template:'<li>{{item}}</li>'
});

var vm=new Vue({
  el:"#app",
  data:{
    title:"测试",
    todoItems:['Java','Linux']
  }
});

五、第一个vue-cli程序

1、下载Node.js并配置环境。

2、 安装vue-cli

npm  install vue- cli -g

3、初始化

npm install --> npm run dev 

六、webpack学习使用

  • npm install webpack -g
  • npm install webpack-cli -g

创建webpack.config.js配置文件:

  • module:模块,用于处理各种类型的文件。(module.exports)
  • entry:入口文件,指定 WebPack 用哪个文件作为项目的入口。
  • output:输出,指定 WebPack 把处理完成的文件放置到指定路径。
  • plugins:插件,如:热更新、代码重用等。
  • resolve:设置路径指向。
  • watch:监听,用于设置文件改动后直接打包。

七、vue-router路由(页面跳转)

  • npm install vue-router --save-dev
  • import VueRouter from 'vue-router'
  • 显示声明使用VueRouter:vue.use(vueRouter);

1、配置路由 

import Vue from 'vue'
import VueRouter from 'vue-router'

import Content from '../components/Content'
import Main from '../ components/Main'

//安装路由
Vue. use (VueRouter);

//配置导出路由
export default new VueRouter({
 routes: [
  {
       //路由路径
       path: '/content',
       name:'content',
       //跳转的组件
       component:Content
  },
  {
    path:'/main',
    name:'content',
    component:Main
  }
 ]
});

2、 main.js导入

import router from './router'   //自动扫描路由配置

new vue({
   el:'#app',
   //配置路由
   router,
   components: { App },
   template: '<App/>'
});

3、使用 

<template>
 <div id="app">
   <router-link to="/main">首页</router-link>
   <router-link to="/content">内容页</router-link>
   <router-view></ router-view>
 </div>
</template>

八、vue+elementUl

Element - The world's most popular Vue UI framework

sass安装:npm install sass-loader node-sass --save-dev

九、路由嵌套

import vue from 'vue'
import Router from 'vue-router'

import Main from '../views/Main'
import Login from '../views/Login'

import UserList from '../views/user/List'
import UserProfile from '../views/user/Profile'
Vue.use(Router);

export default new Router({
 iroutes: [
  {
     path: '/main',
     component: Main,
     children:[
          {path:'/user/profile',component:UserProfile},
          {path:'/user/list',component:UserList},
       ]
  },{
     path:'/login',
     component: Login
    }
  ]
});

十、参数传递及重定向

1、参数传递

<! --name-传组件Iparams传递参数-->
<router-link :to="{name:'UserProfile',params:{id: 1]">个人信息</router-link>

2、资源重定向

{
   path:'lgoHome',
   redirect:'/main'
}

十一、404和路由钩子

1、路由模式有两种

  • hash:路径带#符号,如http://localhost/#/login
  • history:路径不带#符号,如http://localhost/login
export default new Router({
   mode: history,

2、404页面

3、钩子函数

  • beforeRouteEnter :在进入路由前执行
  • beforeRouteLeave :在离开路由前执行
export default {
   props:['id'],
   name : "UserProfile",
   //类似过滤器
   beforeRouteEnter: (to,from,next) => {
     console.log( "准备进入个人信息页");
     next( );
  },
   beforeRouteLeave: (to,from,next) =>{
     console.1og("准备离开个人信息页");
     next( );
  }
}
  • to:路由将要跳转的路径信息
  • from:路径跳转前的路径信息
  • next:路由的控制参数
  • next()跳入下一个页面
  • next('/path')改变路由的跳转方向,使其跳到另一个路由
  • next(false)返回原来的页面
  • next((vm)=>{})仅在beforeRouteEnter 中可用,vm是组件实例

 4、在钩子函数中使用异步请求

  • 安装Axios: npm install axios -s
  • main.js 引用Axios
  • import axios from 'axios'
    Vue.prototype.axios = axios ;
  • 准备数据︰只有static目录下的文件是可以被访问到的,所以就把静态文件放入该目录下。
  • //静态数据存放的位置
    static/mock/data.json

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Java张金贺

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值