vue基本语法

vue的安装流程
1、先安装node
2、打开cmd,检测node是否安装成功,输入node -v,因为node自带npm,检测npm,npm -v,但是开发不使用npm,使用cnpm
3、安装cnpm,需要一个淘宝镜像,输入npm install -g cnpm --registry=https://registry.npm.taobao.org,检测是否安装成功,输入cnpm -v
4、搭建vue开发环境,安装Vue的脚手架工具,脚手架提供了Vue的所有东西,输入cnpm install -g vue-cli
5、新建一个文件vue并打开,要想安装vue,必须给其安装插件vetur和vue 2 snippets
6、创建一个项目,因为vscode直接回在文件的路径中打开,要想将新建好的文件的路径在cmd中打开,要想跳出当前盘,直接输入
E:、然后逐步进去cd vue,则进入文件路径,
7、创建一个项目,用旧的版本,输入vue init webpack demo01,在这过程中,只有install vue-router选择yes,其他都是no,直到项目安装成功,
检测其是否安装好,重新打开demo01文件,输入cnpm run dev,直到显示成功,此时运行结果会显示端口比如8080,在浏览器窗口输入localhost:8080,若显示为vue.js,则项目创建成功。
用另一种换单的方式安装,打开文件vue,直接在终端中输入vue init webpack-simple demo02,回车,在use sass中选择yes,则安装完成,打开demo02,
因为此时创建的为空模板,还不能运行,还需要安装依赖,在终端输入cnpm install,安装完成后,输入cnpm run dev检测是否成功,若调到vue网页中,则另一个项目创建成功。
模板template标签里面只能有一个子元素
一、数据绑定,绑定属性,循环渲染数据,数据渲染
1、数据绑定:表达式{{}}以及绑定属性
动态变量绑定

<div>{{a}}</div>     //1
<div>{{str}}</div>     //字符串
<div>{{arr[0]}}</div>  //1
<div>{{obj}}</div>   //{name:"张三",sex:"男"}
<div>{{obj.name+"/"+obj.sex}}</div>  //张三、男

使用模板字符串取值

<div>{`我的名字:${obj.name},我的性别:${obj.sex}`}}</div>  //我的名字:张三,我的性别:男
data(){
    return {
        a:1,
        str:"字符串",
        arr:[1,2,3,4,5,6],
        obj:{
            name:"张三",
            sex:"男"
		}
	}
}

3、循环渲染数据:v-for
单层渲染

<div>{{student}}</div> 
<ul>
    <li v-for="(item,index) in student":key="index">
        {{item.name+"/"+index}}
    </li>
</ul>
data(){
    return {
        sttudent:[
        {
           name:"张三",
            sex:"男"
         },
         {
           name:"李四",
            sex:"男"
         },
         {
           name:"王五",
            sex:"男"
         }
       ]
}
}

二、vue绑定属性,绑定class,绑定style
1、绑定属性:v-bind,可以简写为:属性

<div v-bind:"title"title"></div>

等价于

<div :"title"title"></div>

title:标题
2、动态给元素添加类名称

<div class="block"></div>
<style>
    .block{
        width:200px;
        height:200px;
        border:1px solid red;
}
</style>

或者

<div:class="addClass"></div>   //绑定单个
addClass:"block",
<style>
    .block{
        width:200px;
        height:200px;
        border:1px solid red;
}
</style>

直接绑定元素的class名称

<div:class="{'block':true,'bor':true}"></div>  // 通过变量绑定多个
addClass:"block",
<style>
    .block{
        width:200px;
        height:200px;
        border:1px solid red;
}
     .bor{
        width:200px;
        height:200px;
        border:1px solid red;
}
</style>

或者

<div:class="['block','bor']"></div>  //直接绑定多个

3、绑定元素css

<div:style="{'width':'100px','height':'100px'}"></div>  //直接绑定
<div :style="{'width':`${w}px`,'height':'100px'}"></div> //绑定元素模板

三、vue数据双向 vue事件 vue中ref获取dom元素节点 mvvm
1、数据双向:v-model,用于表单元素的使用指令,是数据双向指令,也就是后台数据变化,前台自动变化,前台数据变化后台自动修改

<input type="text" v-model="test">
test:"请输入...",

2、vue里面的事件绑定:@click="“或者v-on:click=”"

<input type="text" v-model="test">
<button v-on:click="setMsg()">设置值</button>
<button @click="setMsg()">读取值</button>
methods:{
     setMsg(){
         this.test="我修改了";  //this指代当前的组件
},
     getMsg(){
         console.log(this.test);
 }
}

当点击设置值时,文本框中变为我修改了,同是也会输出我修改了
3、vue中ref获取dom元素节点

<div ref="donlist">1</div>
<div ref="donlist">2</div>
<button @click="getlist()">获取dom元素</button>
getlisr(){
    console.log(this.$refs.domlist.innerHTML);  //<div>2</div>
}

在methods方法中设置获取dom元素,如果有多个元素,获取到的元素只有一个,获取的元素为后者,因为前者元素被覆盖
用原生js也可以获取dom元素

<div id="block" ref="donlist">2</div>
console.log(document.getElementById("block"));

4、MVVM 结构 MV 指model数据改变影响view VM指view数据改变影响model
四、vue事件 事件对象 定义方法 执行方法 数据的相关操作
1、vue事件
v-on:click="“等价于@click=”"

<button v-on:click="getMsg(1)">事件</button>
methods:{
     getMsg(e){
         console.log(e)    //1
	}
}

此时的e不是事件的执行参数,而是事件的传参,若没有1,则输出结果为undefined

<button v-on:click="getMsg">事件</button>
methods:{
     getMsg(e){
         console.log(e)    //1
	}
}

此时的e是事件的执行参数
五、vue中父子组件的传值:
父组件给子组件传值:在子组件里面声明接受传值的参数,属性为props,写法有两种
在子容器中

<div>父容器给我传递的属性为----{{title}}</div>
//props:['title'],
props:{
    'title':String   //主要作用是为了限制数据的类型,虽然数据可以传过去,但是会出现报错
},

在父容器中

<v-header :title="title"></v-header>
title:"商家"

父组件获取子组件的数据和方法:
在子组件上定义ref属性,通过this. f e r s . n a m e 属 性 , 或 者 t h i s . fers.name属性,或者this. fers.namethis.refs.name方法
子组件主动获取父组件的属性和方法:
this. p a r e n t 数 据 和 t h i s . parent数据和this. parentthis.parent方法
六、vue的核心:路由:通过路径跳转页面(vue-rouyer),类似于a链接
hash原理:通过location跳转界面、通过history跳转界面。
要想进行页面跳转、使用路由:
1、安装vue-router,安装方式为:cnpm install vue-router --save-dev(dev可写可不写,区别在于vue-router的位置不同)
2、引入路由:import vueRouter from ‘vue-router’
3、配置路由,去main.js文件进行引入和配置

let router=new vueRouter({
    routes:[
        path:"",component:""
	]
})

4、使用路由:

Vue.use(vueRouter);  
new vue({
    el:#app,
    render:h=>h(APP)
})
5、挂载路由:
new vue({
    el:#app,
    router
    render:h=>h(APP)
})

整个过程都在main.js中进行,但在做项目的时候,一般不用这种方法,而是要对路由要进行外部的模块化封装,但二者的性质是一样的,都是对路由进行引入和配置并使用。
路由的模块化封装:
首先在src文件中建一个router文件,在router文件夹中建一个router.js文件,在此文件中进行路由的引入和配置:

import Vue from 'vue';
import vueRouter from 'vue-router';

修改路由的模式:路由模式默认为hash模式,标志为#,要想修改为/,即修改路由的模式,在main.js文件中输入mode:“history”,
路由的写法:router-link实际上就是a链接,在网页解析后显示的为a链接

<router-link to="/">首页</router-link>
<router-link to="/zhao">招聘</router-link>
<router-link to="/lian">联系我们</router-link>

若想点击对应的链接跳转到对应的组件,首先在src文件中建立一个components文件夹,依次建立对应的组件文件vue,例如index.vue文件,在其中写入相应的数据,然后在App.vue文件中进行挂载,

import firstpage from './components/index'
components:{
    firstpage
}

七、搭建app
安装完依赖之后,在安装路由,输入cnpm install vue-router --save
安装完路由之后,需要安装mock数据,输入cnpm install mockjs --save
安装完mock数据之后,还阻延安装axios请求,输入cnpm install axios --save

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值