Vue.js笔记

掌握Vue.js: 动态笔记应用的构建与优化 本文从项目实战的角度出发,深入探讨了如何使用Vue.js构建一个动态笔记应用。内容涵盖了如何使用v-for指令进行列表渲染、数据属性与方法的创建以及如何通过事件监听实现笔记的选中与显示。同时,本文还讲解了如何使用计算属性来访问选中的笔记内容,如何通过动态绑定CSS类来增加用户交互体验,以及如何使用条件渲染指令来优化界面。最后,文章探讨了如何使用localStorage API保存和恢复笔记数据,确保笔记可以在会话之间持久化。 阅读详情
MVVM模式

Model:负责数据存储
View:负责页面展示
View Model:负责业务逻辑处理(比如Ajax请求等),对数据进行加工后交给视图展示
MVC模式:(设计模式,前后端都有模式存在)
m->model->模型->数据(JS变量)
v-view->视图->用户所见界面(HTML,CSS)
c->control->控制器->事件交互->如何根据视图与用户交互后改变数据(通过DOM对象绑定事件,将变量进行修改)

Vue.js:一套构建用户界面的渐进式框架
目标:通过尽可能简单的API实现响应的数据绑定和组合的视图组件
DOM:是数据的一种自然映射
API:应用程序接口

1、下一个编辑器,vscode

VS Code:https://code.visualstudio.com/
Hbuilder X:http://www.dcloud.io/hbuilderx.html

2、Vue.js安装

引用:https://cn.vuejs.org/v2/guide/installation.html

3、创建

最简单的一个模板!

<body>
    <div id="app">
        {{ message}}    <!--声明变量-->
    </div>

    <script type="text/javascript">
    var app = new Vue({     //全局变量vue
        el:'#app',      //元素
        data:{          //用于保存数据
            message:'hello vue 好!'
        }
    });
    </script>

</body>

代码框打‘!’
出来一个模板结构

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <!-- 引入vue1.js -->
    <script src="vue.js"></script>
    
</head>
<body>
    <!-- View -->
    <div id="app">
        <input type="button" value="按钮哦" v-on:click="show()" />
        <input type="button" value="按钮哦!" @click="show()" />
        <!-- 用@来代替 v-on-->
        <!-- 不传递参数时,可以省略括号 -->
        <h3>{{word}}</h3>
    </div>
    <script>
        //Module
        var m = {
            word:'hello, World! I am Vue'
        };

        //ViewModel
        var vm = new Vue({
            el:'#app',   //挂载点
            data: m,
            //方法
            methods:{
                show(){
                    console.log('hello,i am a big girl');
                    this.word = 'Changed by 啊嘞嘞';
                }
            }
        });
    </script>
</body>
</html>

右键选open in default browser(默认浏览器),弹出页面可看效果

如何动态添加一个div,包含p标签和文字

先试一下亲手操作一次DOM
静态操作一下,原生代码写

<body>
    <div id='app'>
        <input type="button" value="按钮1">
    </div>
    <script type="text/javascript">
        //1、直接操作DOM
        function changeDirectly(){
            var app = document.getElementById('app');
            var div,p;
            div = document.createElement('div');
            p = document.createElement('p'),

            p.innerHTML = 'apple';
            div.appendChild(p);
            app.appendChild(div);
        }
        addEventListener('click',changeDirectly);
    </script>
</body>

模板方法写

</div>
    <script type="text/javascript">
        function changeDirectly(){
            var app = document.getElementById('app');
            var html = '';
            
            var htmlTmp = '<div><p>%word%</p></div>';

            html = htmlTmp.replace(/%word%/g,'apple');
            console.log(html);

            app.innerHTML = html;

        }
        addEventListener('click',changeDirectly);
    </script>

3、JS与HTML分离
第一步:把模板放到HTML中
第二步:渲染
第三步:模板hide起来

<body>
    <div id='app'>
        <input type="button" value="按钮1">
    </div>
    <script id="tmp" type="text/x-apple">
        <div>
            <p>%word%</p>
        </div>
    </script>
    <script type="text/javascript">
       
        function changeDirectly(){
            var app = document.getElementById('app');
            var html = '';
            
            var htmlTmp = document.getElementById('tmp').innerHTML;

            html = htmlTmp.replace(/%word%/g,'apple');
            console.log(html);

            app.innerHTML = html;

        }
        addEventListener('click',changeDirectly);
    </script>
</body>
条件渲染指令
v-if
**v-if**指令条件渲染指令
	它根据表达式的true/false来删除或添加元素
	语法:
		v-if="expression"
		expression是一个返回bool值
			true:显示
			false:元素删除转换为注释
<body>
    <div id='app'>
        <input type="button" value="不显示" @click="show">
        <p v-if="showP">能够被控制显示还是不显示的P标签</p>
    </div>
    <script type="text/javascript">
        var m = {
            showP:true
        }
        var vm = new Vue({
            el:'#app',
            data:m,
            methods:{
                show:function(){
                    this.showP = false;
                }
            }
        });
    </script>
</body>
<body>
    <div id='app'>
        <input type="button" value="不显示" @click="show">
        <p v-if="showP">1、能够被控制显示还是不显示的P标签</p>
        <p v-if="num1">2、如果{{num1}}是0不显示</p>
        <p v-if="num2">3、如果{{num2}}是0不显示</p>
        <p v-if="str1">4、如果{{str1}}是空字符串,不显示</p>
        <p v-if="str2.indexOf('c') > 0">5、有c,显示</p>
    </div>
    <script type="text/javascript">
        var m = {
            showP:true,
            num1:0,
            num2:5,
            str1:'',
            str2:'abc'          
        };
        var vm = new Vue({
            el:'#app',
            data:m,
            methods:{
                show:function(){
                    this.showP = false;
                }
            }
        });
    </script>
</body>

结果如下:
在这里插入图片描述

类似开关按钮的设置
 methods:{
                show:function(){
                    this.showP = !this.showP;
                }
            }
v-show
**v-show**指令条件渲染指令
	它根据表达式的true/false来显示或隐藏元素
	语法:
		v-show="expression"
		和v-if指令不同的是,使用v-show指令元素始终会在DOM上,通过修改style属性的显示与隐藏
			display:none true: display:block
			false: display:none
e.g. <p v-show="showP">6、能够被控制显示还是不显示的p标签</p>

v-else
v-else指令条件渲染指令
	指令必须跟一个v-if或v-show元素后
	否则不能够被识别

一个小tip:
 	//li*5
        <li></li>
        <li></li>
        <li></li>
        <li></li>
        <li></li>
<body>
    <div id='app'>
        <ul>
            <!-- 一般的循环 数组 -->
            <li v-for="val in array">{{val}}</li>
            <!-- 有下标的循环 数组 -->
            <li v-for="(val,index) in array">val = {{val}}; index = {{index}}</li> 
            <!-- 一般的循环 JSON-->
            <li v-for="val in json">{{val}}</li>
            <!-- 带有key的循环 JSON-->
            <li v-for="(val, key, index in json">val = {{val}},key = {{key}},index = {{index}}</li>
        </ul>    
    </div>   
    <script type="text/javascript">
        var m = {
            array:['Beijing', 'Jinan', 'Shanghai', 'Hangzhou', 'Sulawesi'],
            json:{
                firstCity:'Beijing',
                secondCity:'Jinan',
                thirdCity:'Shanghai',
                fourthCity:'Hangzhou',
                fivthCity:'Sulawesi'
            }
        };
        var vm = new Vue({
            el:'#app',
            data:m,
            methods:{               
            }
        });        
    </script>
</body>

运行结果:
在这里插入图片描述

v-model
v-model
	用于将控件与model双向绑定
<body>
    <div id="app">
        <input type='text' v-model="theValue">
        <p>{{theValue}}</p>
    </div>
    <script type="text/javascript">
        var m = {
            theValue:'hello world!'            
        };
        var vm = new Vue({
            el:'#app',
            data:m,
            methods:{
            }
        });
        </script>   
</body>
用指令实现一个留言板

1、基于Bootstrap
2、用Vue指令实现响应命令
3、实现一个输入用户名和留言的控件

首先安装bootstrap,管理员打开命令提示符

bower install jquery
bower info bootstrap
bower install bootstrap#3.4.1
Vuejs教学笔记 Vue.js是一个轻量级MVVM(Model-View-ViewModel)框架,和angular、react类似,其实就是所谓的数据双向绑定 立即下载

相关推荐

基于51单片机扫地机器人(全套Proteus仿真+原理图+程序+说明书)

(内含源程序代码,原理图,仿真,讲解视频,元件清单等,【精品】值得推荐!!!扫地机器人是以单片机为主控制器。通过单片机控制小车行驶、除尘、蜂鸣。扫地机器人使用双电机驱动,以提高整车运动的平稳性;在智能车进驶过程中,采用双超声波模块实现避障。

2301_76434107的博客 1894

vue.js详细笔记1 入门必看

一套构建用户界面的渐进式(自底向上逐层的应用)JavaScript框架 Vue的特点 采用组件化模式,提高代码复用率、且让代码更好维护 声明式编码,让编码人员无需直接操作DOM,提高开发效率 使用虚拟DOM+优秀的Diff算法,尽量复用DOM节点 学习Vue之前要掌握的JavaScript基础知识: ES6语法规范、ES6模块化、包管理器、原型、原型链、数组常用方法、axios、promise等 data与el的两种写法 el的两种写法: 1、new Vue时候配置el属性 例:el:"

m0_53206841的博客 1385

MoveIt2 Servo实战:解锁UR机械臂在ROS2中的实时遥操作与动态响应

本文深入探讨了MoveIt2 Servo在UR机械臂实时遥操作中的应用,展示了如何通过ROS2实现毫秒级动态响应。文章详细解析了Servo的核心价值、环境配置、控制器适配及高级调优技巧,特别适用于需要高精度控制的工业场景,如VR手术训练和汽车装配线。

weixin_29044157的博客 247

vue.js学习笔记

vue笔记

weixin_60634477的博客 875

【教程】BM1684X-32边缘计算盒子 网络配置教程

BM1684X边缘计算盒子网络配置教程

ShiMetaPi的博客 714

海康SDK实战:如何从PS流中提取H264裸流并实现前端播放(附完整代码)

本文详细介绍了如何利用海康SDK从PS流中提取H264裸流,并构建无插件前端播放的完整链路。通过解析PS流结构、提取H264 ES流,结合WebSocket实时传输与WFS.js前端播放器,实现了低延迟、高可控性的视频流处理方案,为开发者提供了从数据源到前端渲染的实战代码与清晰指南。

weixin_29051811的博客 475

《Vue.js设计与实现》--- 笔记

【代码】《Vue.js设计与实现》--- 笔记

qq_36936887的博客 351

halcon C++编程 第4讲 HObject/HImage Mat相互转换(tcy)

网上有很多相互转换程序,但并不知那个正确,本文对相互转换后的结果和原对象比较是否相同判断转换是否正确。经测试ok.本文包括转换代码及测试是否相同。 1.转换程序: /************************************ HObject转为Mat:time:2021/3/16 V1.0 *************************************/ cv::Mat HalconClass::HObjectToMat(const HalconCpp::HObject&..

tcy-阿春 4931

Vue.js学习笔记

01 _ Helloworld 前提:引入 vue.js 类库和 jar 包 <!-- 1. 引入Vue.js 2. 创建Vue对象 el : 指定根element(选择器) data : 初始化数据(页面可以访问) 3. 双向数据绑定 : v-model 4. 显示数据 : {{xxx}} 5. 理解vue的mvvm实现 --> <...

喜欢历史的码农 466

机器学习系列(3)_逻辑回归应用之Kaggle泰坦尼克之灾

f作者: 寒小阳 &&龙心尘 时间:2015年10月。 出处: 声明:版权所有,转载请注明出处,谢谢。手把手机器学习之逻辑回归应用——Kaggle泰坦尼克之灾1.引言先说一句,年末双十一什么的一来,真是非(mang)常(cheng)欢(gou)乐(le)!然后push自己抽出时间来写这篇blog的原因也非常简单: 写完前两篇逻辑回归的介绍和各个角度理解之后,小伙伴们纷纷表示『好像很高级的样纸,

寒小阳 43万+

VMwareWorkstation安装UOS系统(1070版本)教程

UOS系统是一款国产信创操作系统。目前市面上主流的系统版本是1070,下面我们用虚拟机来安装一下这款系统。

欲买桂花同载酒的博客 4290

Vue.js 笔记(每天记录一点点)

(1)最基本核心功能 v-bind : 动态绑定指令,默认情况下标签自带属性的值是固定的,在为了能够动态的给这些属性添加值 缩写用:代替即可 v-if: 条件语句 v-for: 循环语句 v-on: 事件监听器,监听事件然后触发函数,缩写用@符号代替 v-model: 在表单<input> (text,checkbox,radio),<select>及<textarea> 元素上创建双向数据绑定,它会忽略表单元素的初始值而将v

叱咤少帅的博客 580

QT开发技术 [QXlsx 导出大量数据的崩溃大坑]

QXlsx 是一个基于 Qt 框架开发的开源库,用于读写 Excel 文件(.xlsx 格式),无需依赖 Microsoft Office 或第三方库。以下从多个方面为你详细介绍 QXlsx:主要特性读写功能:支持创建、读取和修改 Excel 文件,能处理单元格的数值、公式、格式等基本操作。样式设置:可以设置单元格的字体、颜色、对齐方式、边框等样式,还能创建自定义样式并应用到多个单元格。图表支持:支持创建多种类型的图表,如柱状图、折线图、饼图等,并能对图表的样式和属性进行配置。

weixin_45397344的博客 653

Notational:基于Vue.js的实时笔记应用

Notational:基于Vue.js的实时笔记应用 项目的基础介绍和主要的编程语言 Notational 是一个基于 Vue.js 构建的实时笔记应用,旨在为用户提供快速、高效的笔记记录体验。该项目灵感来源于 macOS 上的知名应用 Notational Velocity,但并未与其有任何官方关联。Notational 的核心设计理念是让用户能够专注于键盘操作,快速创建、更新和查找笔记。 该项...

gitblog_00813的博客 783

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

vue.js思维导图笔记

lihei12345的专栏 4902

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

Vue.js 学习笔记

在前端开发领域,Vue.js 以其轻量级、易上手和高性能的特点,赢得了众多开发者的青睐。作为一名前端小白,我也踏上了学习 Vue.js 的旅程。本文将分享我的学习笔记,涵盖 Vue.js 的基础概念、常用指令、组件化开发、计算属性与侦听器、路由和状态管理等知识点,并附上代码示例,希望能帮助到同样在学习 Vue.js 的你。Vue.js 是一款用于构建用户界面的渐进式 JavaScript 框架。它采用直观的模板语法,降低了学习成本,并通过响应式数据绑定,实现了数据与视图的自动同步更新。

m0_72686196的博客 2767

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

vue.js笔记

vue.js笔记

oZhuiMing1的专栏 201

慕课网Vue.js入门基础学习笔记——vuejs及相关工具介绍

2、Vuejs开发环境的搭建 1)推荐使用官方提供的命令行工具: 快速下载一套基于vuejs的开发模板,不仅包含了vuejs的框架,还包含了vuejs打包工具、测试工具、开发调试的服务器等,可以不必关心具体的打包和部署的细节,把关注点放在vuejs本身对项目功能的实现上。 2)命令行工具的安装及使用 npm:node的一个包管理工具 Windows系统还需要手动安装git 技巧:nmp

筱葭的博客 2647

Vue.js笔记(一)

Vue.js笔记(一)读书笔记Vue.js介绍内容概要1.1 站在巨人的肩膀上1.1.1 MVC模式1.1.2 MVVM模式2.1.3 异步执行脚本2.1.4 动态加载脚本2.2 行内代码与外部文件2.3 文档模式2.4 <\noscript\>元素 读书笔记 《Vue.js开发实战》 Vue.js介绍 JavaScript是通过<script>元素插入到HTML页面中的。 要包含外部JavaScript文件,必须将src属性设置为要包含文件的URL。文件可以跟网页在同一台服务器上

红炉一点雪的博客 750

【前端学习笔记】JavaScript + jQuery + Vue.js + Element-UI

前端学习笔记JavaScriptVue.js JavaScript 基础语法(数据类型、字符串、数组、对象、Map、Set、iterable、函数基础) 函数高级(变量作用域、解构赋值、方法、高阶函数、闭包、箭头函数、generator) 摘自缪雪峰的博客的JavaScript个人笔记(3) Vue.js 适合后端人员学习的Vue笔记(1) 适合后端人员学习的Vue笔记(2) ...

萌宅鹿的技术小屋 7537

vuejs学习笔记(一),直接引入vue.js

声明式渲染: &lt;!DOCTYPE &gt; &lt;html&gt; &lt;head&gt; &lt;title&gt;声明式渲染&lt;/title&gt; &lt;/head&gt; &lt;style&gt; &lt;/style&gt; &lt;script src="https://cdn.staticfile.org/v

Thea12138的博客 1万+

vue 内部this变了 引入js_Vue.js构建项目笔记2:vuejs+vue-router

一.使用vue文件继续1的学习,我们知道使用: 可以把.vue文件的内容解析成组件对象的形式: 解析类似如下: 我们使用es6的语法,把render的回调处理参数使用这种处理:import Vue from 'vue'import App from './App.vue'var app = new Vue({render:h=>h(App)}).$mount("#app")显示正常: 二.组...

weixin_36145482的博客 291

2025.4.28 Vue.js 学习笔记

Vue.js 是一个用于构建用户界面的渐进式 JavaScript 框架,具有轻量级、易上手、双向数据绑定和组件化架构等特点,可帮助开发者高效构建动态、交互式的 Web 应用。

2503_90960068的博客 624

Vue-Memo:一款轻巧高效的Vue.js笔记应用

Vue-Memo:一款轻巧高效的Vue.js笔记应用 是一个基于Vue.js框架开发的在线笔记应用程序,它结合了现代前端技术与简洁直观的用户界面,旨在为开发者和普通用户提供一个快速记录、检索信息的平台。 技术分析 Vue-Memo的核心技术栈包括: Vue.js - 作为项目的基石,Vue.js是一个流行的渐进式JavaScript框架,以其易学性和灵活性著称。Vue-Memo利用Vue的组件...

gitblog_00015的博客 593
上一篇: Spark编程基础(三)
Apple_杨
博客等级 码龄6年 29粉丝 10原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值