转载 vue的基础使用

转载https://www.cnblogs.com/majj/p/9957597.html#top

vue的介绍

  • 前端框架和库的区别
  • nodejs的简单使用
  • vue的起步
  • 指令系统
  • 组件的使用
  • 过滤器的使用
  • watch和computed
  • 钩子函数

渐进式的JavaScript框架

vue           react            angualr作者:尤雨溪    facebook         谷歌公司文档:中文  建议:如果你想学好vue  
1.看视频  初步的了解vue  
2.学vue的课 时刻看官网文档  https://cn.vuejs.org/

前端框架和库的区别

功能上的不同

jquery库:包含DOM(操作DOM)+请求,就是一块功能。art-template库:模板引擎渲染,高性能的渲染DOM    (我们后端的一种模板  跟python的模板类似)框架:大而全的概念,简易的DOM体验+请求处理+模板引擎在KFC的世界里,库就是一个小套餐,框架就是全家桶。

代码上的不同

一般使用库的代码,是调用某个函数或者直接使用抛出来的对象,我们自己处理库中的代码。
一般使用框架,其框架本身提供的好的成套的工具帮我们运行我们编写好的代码。

框架的使用

  • 初始化自身的一些行为
  • 执行你所编写的代码
  • 释放一些资源

nodejs

  1. 去官网https://nodejs.org/en/download/ 下载 安装(傻瓜式安装)

  2. 打开终端 cmd : 执行node -v 如果出现版本号,证明安装node成功 ,跟安装python雷同

  3. 下载完node之后,会自带包管理器 npm,好比 是python中 pip3包管理器。pip3 install xxx

  4. 使用npm

    1. 1.要初始化npm的项目 :

      npm init --yes 自动生成一个package.json文件

      ```javascript
      {"name": "vue_lesson","version": "1.0.0","description": "这是我的vue的第一个项目","main": "index.js","scripts": {"test": "echo "Error: no test specified" && exit 1"},"author": "mjj","license": "ISC","dependencies": {"vue": "^2.5.16"}}```

      2.下载依赖包

      npm install vue --save
      npm install jquery --save

      3.卸载包 npm uninstall vue --save

      4.下载所有的依赖包 npm install

vue的起步

  • 引包:
  • 创建实例化对象
new Vue({
el:'#app',//目的地
data:{msg:"hello Vue"
}
});
/*
{{}}: 模板语法插值{{变量}}{{1+1}}{{'hello'}}{{函数的调用}}{{1==1?'真的':'假的'}}
*/

指令系统

//常用
v-text 
v-html 
v-if
v-show
v-for
v-bind
v-on表单控件的value (看后面)

v-if和v-show


v-if 是“真正”的条件渲染,因为它会确保在切换过程中条件块内的事件监听器和子组件适当地被销毁和重建。
v-if 也是惰性的:如果在初始渲染时条件为假,则什么也不做——直到条件第一次变为真时,才会开始渲染条件块。
相比之下,v-show 就简单得多——不管初始条件是什么,元素总是会被渲染,并且只是简单地基于 CSS 进行切换。
一般来说,v-if 有更高的切换开销,而 v-show 有更高的初始渲染开销。因此,如果需要非常频繁地切换,则使用 v-show 较好;如果在运行时条件很少改变,则使用 v-if 较好。//保存数组或者对象 格式
v-for = '(item,index) in menuList'
v-for = '(value,key) in object'
//item指的是数组中每项元素
<a href="" class='box'></a>
<img src="" alt="">
使用v-bind:class = '{}||[]||变量名||常量' 对我们的页面中标签的属性进行绑定 所有的属性都可以进行绑定,注意只要使用了v-bind 后面的字符串一定是数据属性中的值

​### v-on、v-bind、v-for

// 1.事件源 2.事件  3.事件驱动程序
vue中使用v-on:click对当前DOM绑定click事件 注意:所有的原生js的事件使用v-on都可以绑定v-if和v-on 来对页面中DOM进行操作v-bind:classv-on对页面中DOM的样式切换v-bindv-onvue中它可以简写: v-bind:         
:class 等价于 v-bind:class   
:src 等价于v-bind:src
:id 等价于v-bind:id
v-on:click   等价于 @click = '方法名'
v-text  v-html  {{}}: 对页面的dom进行赋值运算   相当与js中innerText innerHTMLv-if = 'true':
//创建
var oP =   document.createElement('p')  ;
oDiv.appendChild(op)v-if = 'false'
//销毁
oDiv.removeChild(op)
v-show = 'true'
oDiv.style.display = 'block'
v-show:'true'
oDid.style.display = 'none'v-bind:class
oDiv.className += ' active'/*
渐进式的JavaScript框架
做加法和做减法:大部分的人觉得做加法简单,做减法难
vue这个框架 将 做减法的事情都给咱们做了(难的部分)
学习简单的部分就能实现复杂的dom操作
*/

组件的使用

局部组件的使用

​ 打油诗: 1.声子 2.挂子 3.用


var App = {tempalte:`<div class='app'></div>`
};//2.挂子new Vue({el:"#app",//用子    template:<App />components:{App}})

(1)父组件向子组件传递数据:通过Prop

1.在子组件自定义特性。props:['自定义的属性1','自定义属性2']当一个值传递给一个 prop 特性的时候,它就变成了那个组件实例的一个属性,那么我们就可以像访问data中的值一样  
2.要在父组件中导入的子组件内部 绑定自定义的属性 <Vheader :title = '父组件中data声明的数据属性'/>

​ 注意:一个组件默认可以拥有任意数量的 prop,任何值都可以传递给任何 prop。

(2)如何从子组件传递数据到父组件

1.给子组件中的某个按钮绑定原声事件,。我们可以调用内建的 this.$emit('自定义的事件名','传递的数据'),来向父级组件触发一个自定义的事件.2.在父组件中的子组件标签中 要绑定自定义的事件,

全局组件的使用

Vue.component('全局组件的名字',{跟new Vue() 实例化对象中的options是一样,但是要注意:不管是公共组件还是局部组件 data必须是个函数 函数一定要返回 {}
})
  <slot> 元素作为承载分发内容的出口

过滤器的使用

局部过滤器

 //1.注册局部过滤器 在组件对象中定义
filters:{'过滤器的名字':function(value){}   
}
//2.使用过滤器 使用管道符 | 
{{price  | '过滤器的名字'}}

全局过滤器

// 注册全局的过滤器
//第一个参数是过滤器的名字,第二个参数是执行的操作Vue.filter('reverse',function(value) {    return value.split('').reverse().join('');
});//使用跟 局部过滤器一样

计算属性computed和侦听器(watch)

侦听的是单个属性

watch:{数据属性的名字:function(value){},数据属性的名字2function(value){}
}

侦听多个属性:计算属性 computed

{{str.split('').reverse().join('')}}

计算属性 :默认只有getter方法data(){return {name:'alex',age:18}}compuetd:{key:value计算属性的方法名:funtion(){return ${this.name}他的年龄是${this.age}岁}}var musicData = [{id:1,name:'于荣光 - 少林英雄',author:'于荣光',songSrc:'./static/于荣光 - 少林英雄.mp3'},{id:2,name:'Joel Adams - Please Dont Go',author:'Joel Adams',songSrc:'./static/Joel Adams - Please Dont Go.mp3'},{id:3,name:'MKJ - Time',author:'MKJ',songSrc:'./static/MKJ - Time.mp3'},{id:4,name:'Russ - Psycho (Pt. 2)',author:'Russ',songSrc:'./static/Russ - Psycho (Pt. 2).mp3'}];

生命周期(钩子函数)

beforeCreate(){// 组件创建之前console.log(this.msg);},created(){// 组件创建之后// 使用该组件,就会触发以上的钩子函数,created中可以操作数据,发送ajax,并且可以实现vue==》页面的影响  应用:发送ajax请求console.log(this.msg);// this.msg = '嘿嘿黑';},beforeMount(){// 装载数据到DOM之前会调用console.log(document.getElementById('app'));},mounted(){// 这个地方可以操作DOM// 装载数据到DOM之后会调用 可以获取到真实存在的DOM元素,vue操作以后的DOMconsole.log(document.getElementById('app'));},beforeUpdate(){// 在更新之前,调用此钩子,应用:获取原始的DOMconsole.log(document.getElementById('app').innerHTML);},updated(){// 在更新之前,调用此钩子,应用:获取最新的DOMconsole.log(document.getElementById('app').innerHTML);},beforeDestroy(){console.log('beforeDestroy');},destroyed(){console.log('destroyed');},activated(){console.log('组件被激活了');},deactivated(){console.log('组件被停用了');}

$属性

  • $refs获取组件内的元素
  • $parent:获取当前组件的父组件
  • $children:获取当前组件的子组件
  • $root:获取New Vue的实例化对象
  • $el:获取组件对象的DOM元素

获取更新之后的dom添加事件的特殊情况

$nextTick 是在下次Dom更新循环结束之后执行的延迟回调,在修改数据之后使用$nextTick ,则可以在回调中获取更新之后的DOM

转载于:https://www.cnblogs.com/ming-yuan/p/10036581.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/248914.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Express实现路由分发控制、RESTful API

Express实现路由分发控制、RESTful API 标签&#xff08;空格分隔&#xff09;&#xff1a; Node.js 最近在用Express作为自己的WEB应用框架&#xff0c;其中最为迷惑的就是Express的路由控制和分发&#xff0c;在网上搜了很多资料&#xff0c;但是大部分的资料都是将Express的…

springboot运行jar包时候加载指定目录的其他jar支持包

最近发生一个小故障&#xff0c;调试好的项目&#xff0c;发布成jar包后无法找到oracle的驱动&#xff0c;研究了一下解决了。记录一下。写了一个run.sh脚本 #!/bin/bash cd ~ cd app nohup java -Djava.ext.dirs./lib -Doracle.jdbc.thinLogonCapabilityo3 -jar -Xms512m -Xmx…

OpenLayers3关于Map Export的Canvas跨域

一 Canvas跨域现象 地图导出是地图中常用的功能&#xff0c;并且OpenLayers3中也提供了两个地图导出的例子:http://openlayers.org/en/latest/examples/export-map.html http://openlayers.org/en/latest/examples/export-pdf.html。 看到这两个例子我们都很兴奋&#xff0c;直…

typescript-koa-postgresql 实现一个简单的rest风格服务器 —— 连接 postgresql 数据库...

接上一篇&#xff0c;这里使用 sequelize 来连接 postgresql 数据库 1、安装 sequelize&#xff0c;数据库驱动 pg yarn add sequelize sequelize-typescript pg reflect-metadata 2、新建配置文件夹 conf 及 配置文件 db.conf.ts /*** name: 数据库配置* param : undefined* r…

SmartGit使用教程

说明 官网的客户端是命令行形式的&#xff0c;有兴趣可以去了解下。这里针对图形界面的smartgit做一个使用说明。 软件下载和安装 下载地址[2016.12.16测试可以] 按需选择,如果不知道自己电脑是什么系统的&#xff0c;那我没话说了https://www.syntevo.com/smartgit/ 安装 …

jquery 下拉框 select2 运用 笔记

1,添加select2 样式 参考&#xff08;https://select2.org/ &#xff09; 2,Html: <select id"txtType" name"Type" class"form-control select2" multiple"multiple"> </select> 3,jquery section scripts{ $(documen…

Asp.Net MVC中Action跳转小结

首先我觉得action的跳转大致可以这样归一下类&#xff0c;跳转到同一控制器内的action和不同控制器内的action、带有参数的action跳转和不带参数的action跳转。 一、RedirectToAction(“Index”);//一个参数时在本Controller下&#xff0c;不传入参数。 二、RedirectToAction(A…

获取浏览器屏幕高度(js,jq) - 进击的小牛牛 - 博客园

javascript IE中&#xff1a; document.body.clientWidth > BODY对象宽度 document.body.clientHeight > BODY对象高度 document.documentElement.clientWidth > 可见区域宽度 document.documentElement.clientHeight > 可见区域高度 FireFox中&#xff1a; docum…

589-N叉树的前序遍历

N阶二叉树&#xff1a; class Tree {public int val;public List<Tree> children;public Tree() {}public Tree(int _val, List<Tree> _children) {val _val;children _children;}}迭代法遍历&#xff1a;public List<Integer> preorder(Tree root) {List&…

解析URL参数

1、拿到一个完整url后&#xff0c;如何解析该url得到里面的参数。 /*** 解析url中参数信息&#xff0c;返回参数数组*/ function convertUrlQuery($query) {$queryParts explode(&, $query);$params array();foreach ($queryParts as $param) {$item explode(, $param);…

第一个爬虫和测试

Python测试函数的方法之一是用&#xff1a;try……except def gameover(a,b):if a>10 and b>10 and abs(a-b)2:return Trueif (a>11 and b<11) or (a<11 and b>11):return Truereturn False try:agameover(10,11)print(a) except:print("Error") g…

JS组件系列——Bootstrap 树控件使用经验分享 - 懒得安分 - 博客园

前言&#xff1a;很多时候我们在项目中需要用到树&#xff0c;有些树仅仅是展示层级关系&#xff0c;有些树是为了展示和编辑层级关系&#xff0c;还有些树是为了选中项然后其他地方调用选中项。不管怎么样&#xff0c;树控件都是很多项目里面不可或缺的组件之一。今天&#xf…

算法第4章实践报告

1.实践题目&#xff1a;最小删数问题 2.问题描述&#xff1a;给定n位正整数a&#xff0c;去掉其中任意k≤n 个数字后&#xff0c;剩下的数字按原次序排列组成一个新 的正整数。对于给定的n位正整数a和正整数 k&#xff0c;设计一个算法找出剩下数字组成的新数最 小的删数方案。…

Vue 下拉刷新及无限加载组件 - 有你便是晴天 - 博客园

原文 https://github.com/wangdahoo/vue-scroller 主题 Vue.js Vue Scroller Vue Scroller is a foundational component ofVonic UI. In purpose of smooth scrolling, pull to refresh and infinite loading. Demo Change Logs v0.3.9 add getPosition method for scr…

用java编程实现集合的交、并、差和补运算

一、实验目的 掌握集合的交、并、差和补运算&#xff0c;并且使用计算机编程实现。 二、实验内容 通过编程实现求给定集合A和B的并集C&#xff08;CA∪B&#xff09;、交集C&#xff08;CA∩B&#xff09;、差集C&#xff08;CA-B&#xff09;、补集~CE-C的运算。 三、实验要求…

node.js项目中常量的配置 - 个人文章 - SegmentFault 思否

在项目中&#xff0c;我们常将一些常量信息做成配置项&#xff0c;如&#xff0c;数据库的链接配置&#xff0c;业务错误代码配资等等。 我们通过两种方式可以解决该问题。 系统环境变量的方式 配置文件的方式 下边&#xff0c;将以这两方面进行展开。 1. 系统环境变量 No…

MySQL create table语法中的key与index的区别

在create table的语句中&#xff0c;key和index混淆在一起&#xff0c;官方手册中的解释是这样&#xff1a; KEY is normally a synonym for INDEX. The key attribute PRIMARY KEY can also be specified as just KEY when given in a column definition. This was implemente…

蓝桥杯 历届试题 九宫重排 (bfs+康托展开去重优化)

Description 如下面第一个图的九宫格中&#xff0c;放着 1~8 的数字卡片&#xff0c;还有一个格子空着。与空格子相邻的格子中的卡片可以移动到空格中。经过若干次移动&#xff0c;可以形成第二个图所示的局面。我们把第一个图的局面记为&#xff1a;12345678.把第二个图的局面…

DIV或者DIV里面的图片水平与垂直居中的方法 - 站住,别跑 - 博客园

DIV或者DIV里面的图片水平与垂直居中的方法 <div class“box”><img /> </div> 水平居中的常用方式&#xff1a; text-align:center ——这可以实现子元素字体&#xff0c;图片的水平居中。 margin:0 auto —— 这是针对块元素的水平居中方法 垂直居中的常…

spring boot的多环境部署

需求&#xff1a;不同的环境有不同的开关属性&#xff0c;比如开发系统&#xff0c;需要关闭短信&#xff0c;微信的通知功能。而演示环境&#xff0c;线上环境则需要打开这些配置。 那么&#xff0c;如何做到呢&#xff1f;---》在properties.application配置 需要在resources…