| |
|
|
开发:
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
?原生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图书馆 购物 三丰科技 阅读网 日历 万年历 2025年11日历 | -2025/11/27 22:15:33- |
|
| 网站联系: qq:121756557 email:121756557@qq.com IT数码 |