| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> JavaScript知识库 -> 初识Vue -> 正文阅读 |
|
[JavaScript知识库]初识Vue |
1. Vue基本概念1.0_为何学Vue
?例如: 把数组数据-循环铺设到li中, 看看分别如何做的? ?原生js做法
注意: 虽然vue写起来很爽, 但是一定不要忘记, vue的底层还是原生js 开发更加的效率和简洁, 易于维护, 快!快!快!就是块 (甚至测试, Java, Python工程师都要学点vue, 方便与前端沟通) 现在很多项目都是用vue开发的 ? 市场上90%工作都要求会vue, 会vue拿高薪, 甚至java或测试都要学点vue ? 1.1_Vue是什么logo镇楼 ? ==渐进式==javacript==框架==, 一套拥有自己规则的语法 官网地址: Vue.js (作者: 尤雨溪)
渐进式: 逐渐进步, 想用什么就用什么, 不必全都使用 ? Vue渐进式: Vue从基础开始, 会循序渐进向前学习, 如下知识点可能你现在不明白, 但是学完整个vue回过头来看, 会很有帮助 ?
补充概念: 库: 封装的属性或方法 (例jquery.js) 框架: 拥有自己的规则和元素, 比库强大的多 (例vue.js) ? ? 1.2_Vue学习的方式
?
2. @vue/cli脚手架2.0_@vue/cli 脚手架介绍
?
2.1_@vue/cli安装
yarn global add @vue/cli # OR npm install -g @vue/cli 注意: 如果半天没动静(95%都是网速问题), 可以ctrl c
vue -V
2.2_@vue/cli 创建项目启动服务
==注意: 项目名不能带大写字母, 中文和特殊符号==
# vue和create是命令, vuecli-demo是文件夹名 vue create vuecli-demo
选择用什么方式下载脚手架项目需要的依赖包 ?
cd vuecil-demo ? npm run serve # 或 yarn serve 只要看到绿色的 - 啊. 你成功了(底层node+webpack热更新服务) ? 打开浏览器输入上述地址 ?
2.3 @vue/cli 目录和代码分析
vuecil-demo ? ? ? ?# 项目目录 ? ├── node_modules # 项目依赖的第三方包 ? ├── public ? ? ? # 静态文件目录 ? ? ├── favicon.ico# 浏览器小图标 ? ? └── index.html # 单页面的html文件(网页浏览的是它) ? ├── src ? ? ? ? ?# 业务文件夹 ? ? ├── assets ? ? # 静态资源 ? ? ? └── logo.png # vue的logo图片 ? ? ├── components # 组件目录 ? ? ? └── HelloWorld.vue # 欢迎页面vue代码文件 ? ? ├── App.vue ? ?# 整个应用的根组件 ? ? └── main.js ? ?# 入口js文件 ? ├── .gitignore ? # git提交忽略配置 ? ├── babel.config.js ?# babel配置 ? ├── package.json ?# 依赖包列表 ? ├── README.md ? ?# 项目说明 └── yarn.lock ? ?# 项目包版本锁定和缓存地址 主要文件及含义 node_modules下都是下载的第三方包 public/index.html – 浏览器运行的网页 src/main.js – webpack打包的入口文件 src/App.vue – vue项目入口页面 package.json – 依赖包列表文件 2.4_@vue/cli 项目架构了解
2.5_@vue/cli 自定义配置
src并列处新建vue.config.js /* 覆盖webpack的配置 */ module.exports = { ?devServer: { // 自定义服务配置 ? ?open: true, // 自动打开浏览器 ? ?port: 3000 } } 2.6_eslint了解
例子: 先在main.js 随便声明个变量, 但是不要使用 ? 观察发现, 终端和页面都报错了 ==记住以后见到这样子的错误, 证明你的代码不严谨== ?? 方式1: 手动解决掉错误, 以后项目中会讲如何自动解决 方式2: 暂时关闭eslint检查(因为现在主要精力在学习Vue语法上), 在vue.config.js中配置后重启服务 ? ? 2.7_@vue/cli 单vue文件讲解
Vue推荐采用.vue文件来开发项目 template里只能有一个根标签 vue文件-独立模块-作用域互不影响 style配合scoped属性, 保证样式只针对当前template内标签生效 vue文件配合webpack, 把他们打包起来插入到index.html <!-- template必须, 只能有一个根标签, 影响渲染到页面的标签结构 --> <template> ?<div>欢迎使用vue</div> </template> ? <!-- js相关 --> <script> export default { ?name: 'App' } </script> ? <!-- 当前组件的样式, 设置scoped, 可以保证样式只对当前页面有效 --> <style scoped> </style> ? 最终: Vue文件配合webpack, 把他们打包起来插入到index.html, 然后在浏览器运行 2.8_@vue/cli 欢迎界面清理
==3. Vue指令==3.0_vue基础-插值表达式
又叫: 声明式渲染/文本插值 语法: {{ 表达式 }} <template> ?<div> ? ?<h1>{{ msg }}</h1> ? ?<h2>{{ obj.name }}</h2> ? ?<h3>{{ obj.age > 18 ? '成年' : '未成年' }}</h3> ?</div> </template> ? <script> export default { ?data() { // 格式固定, 定义vue数据之处 ? ?return { ?// key相当于变量名 ? ? ?msg: "hello, vue", ? ? ?obj: { ? ? ? ?name: "小vue", ? ? ? ?age: 5 ? ? } ? } } } </script> ? <style> </style> ?
3.1_vue基础-MVVM设计模式
设计模式: 是一套被反复使用的、多数人知晓的、经过分类编目的、代码设计经验的总结。 演示: 在上个代码基础上, 在devtool工具改变M层的变量, 观察V层(视图的自动同步) 等下面学了v-model再观察V改变M的效果 ?
1. 在vue中,不推荐直接手动操作DOM!!! 2. 在vue中,通过数据驱动视图,不要在想着怎么操作DOM,而是想着如何操作数据!!(思想转变) ?
3.2_vue指令-v-bind
vue指令, 实质上就是特殊的 html 标签属性, 特点: v- 开头 每个指令, 都有独立的作用
<!-- vue指令-v-bind属性动态赋值 --> <a v-bind:href="url">我是a标签</a> <img :src="imgSrc">
3.3_vue指令-v-on
<!-- vue指令: ? v-on事件绑定--> <p>你要买商品的数量: {{count}}</p> <button v-on:click="count = count + 1">增加1</button> <button v-on:click="addFn">增加1个</button> <button v-on:click="addCountFn(5)">一次加5件</button> ? <button @click="subFn">减少</button> ? <script> ? ?export default { ? ? ? ?// ...其他省略 ? ? ? ?methods: { ? ? ? ? ? ?addFn(){ // this代表export default后面的组件对象(下属有data里return出来的属性) ? ? ? ? ? ? ? ?this.count++ ? ? ? ? ? }, ? ? ? ? ? ?addCountFn(num){ ? ? ? ? ? ? ? ?this.count += num ? ? ? ? ? }, ? ? ? ? ? ?subFn(){ ? ? ? ? ? ? ? ?this.count-- ? ? ? ? ? } ? ? ? } ? } </script>
3.4_vue指令-v-on事件对象
<template> ?<div> ? ?<a @click="one" href="http://www.baidu.com">阻止百度</a> ? ?<hr> ? ?<a @click="two(10, $event)" href="http://www.baidu.com">阻止去百度</a> ?</div> </template> ? <script> export default { ?methods: { ? ?one(e){ ? ? ?e.preventDefault() ? }, ? ?two(num, e){ ? ? ?e.preventDefault() ? } } } </script> 3.5_vue指令-v-on修饰符
<template> ?<div @click="fatherFn"> ? ?<!-- vue对事件进行了修饰符设置, 在事件后面.修饰符名即可使用更多的功能 --> ? ?<button @click.stop="btn">.stop阻止事件冒泡</button> ? ?<a href="http://www.baidu.com" @click.prevent="btn">.prevent阻止默认行为</a> ? ?<button @click.once="btn">.once程序运行期间, 只触发一次事件处理函数</button> ?</div> </template> ? <script> export default { ?methods: { ? ?fatherFn(){ ? ? ?console.log("father被触发"); ? }, ? ?btn(){ ? ? ?console.log(1); ? } } } </script>
3.6_vue指令-v-on按键修饰符
<template> ?<div> ? ?<input type="text" @keydown.enter="enterFn"> ? ?<hr> ? ?<input type="text" @keydown.esc="escFn"> ?</div> </template> ? <script> export default { methods: { ? enterFn(){ ? ? console.log("enter回车按下了"); ? }, ? escFn(){ ? ? console.log("esc按下了"); ? } } } </script>
3.7_课上练习-翻转世界
效果演示: ? 正确代码: <template> ?<div> ? ?<h1>{{ message }}</h1> ? ?<button @click="btn">逆转世界</button> ?</div> </template> ? <script> export default { ?data() { ? ?return { ? ? ?message: "HELLO, WORLD", ? }; }, ?methods: { ? ?btn(){ ? ? ?this.message = this.message.split("").reverse().join("") ? } } }; </script>
|
|
JavaScript知识库 最新文章 |
ES6的相关知识点 |
react 函数式组件 & react其他一些总结 |
Vue基础超详细 |
前端JS也可以连点成线(Vue中运用 AntVG6) |
Vue事件处理的基本使用 |
Vue后台项目的记录 (一) |
前后端分离vue跨域,devServer配置proxy代理 |
TypeScript |
初识vuex |
vue项目安装包指令收集 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 2:20:23- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |