什么是Vue?

接触前端时,一直在想,网页中那么多数据,怎么一次性渲染到页面中?通过js可以实现,但是比较繁琐,需要组合字符串,很麻烦。还有更好的办法吗?

直到我遇见了Vue......

首次接触到Vue,进了官网,看到官方介绍视频我就已经跃跃欲试了,真的非常方便!

总的来说,Vue可以把网页中的各种数据集中到一起,用数组的方式调用,并且还支持循环这样的方式调用(当然,目前我还是小白,更高级的功能需要进一步探索)。

上手实战

正好我的博客需要写一个能够快速添加博客友链的功能,希望能够做到,当有新的友链要新增时,只需要维护基础数据即可,而不再像以前一样,又重新写html各种div。

源码展示

<div id="app">
<div id="friedsGroup">
<div class="friends" v-for="friend in friends">
<div class="friendCard">
<a :href="friend.blogUrl" target="_blank" class="item">
<img :src="friend.avatarUrl" alt="" />
<div class="info">
<p class="name">{{friend.blogName}}</p>
<p class="sign">{{friend.blogSign}}</p>
</div>
</a>
</div>
</div> </div>
</div> <myscript>
new Vue({
el: '#app',
data: {
friends: [
{
blogName:'YJLAugus',
blogUrl:'https://www.cnblogs.com/yjlaugus/',
avatarUrl: 'https://pic.cnblogs.com/avatar/1176586/20190523174806.png',
blogSign: '尽长安'
},
{
blogName:'麋鹿鲁哟',
blogUrl:'https://www.cnblogs.com/miluluyo/',
avatarUrl: 'https://pic.cnblogs.com/avatar/1273193/20190806180831.png',
blogSign: '大道至简,知易行难。'
},
]
}
})
</myscript>

遇到的问题

  • 怎么存储数据?

Vue采取的是json格式的数据存储方式:

    friends: [
{
blogName:'YJLAugus',
blogUrl:'https://www.cnblogs.com/yjlaugus/',
avatarUrl: 'https://pic.cnblogs.com/avatar/1176586/20190523174806.png',
blogSign: '尽长安'
},
{
blogName:'麋鹿鲁哟',
blogUrl:'https://www.cnblogs.com/miluluyo/',
avatarUrl: 'https://pic.cnblogs.com/avatar/1273193/20190806180831.png',
blogSign: '大道至简,知易行难。'
},
]
  • 在哪调用?

首先要告诉Vue要在哪里解析,一般用下面的格式包裹需要运行Vue的html,然后在script中创建Vue实例。

<div id="app">

......

</div>
<script>
new Vue({
el: '#app',
data: { ... }
</script>

这里因为要在博客正文里运行脚本,而博客园是不能运行的(因为script标签会被解析没了),我们采取了改标签的方式,用代码执行其中的内容。

<!-- 在文章内运行代码 -->
<script>
$(function() {
$('myscript').each(function() {
$(this).css('display','none');
eval($(this).text());
});
});
</script>
  • 怎么调用?

数据调用一般采用json格式,用两对花括号{{}}包裹起来,放到调用的位置(一般是div内部的文字内容):

{{friend.blogName}}

这里遇到了一个小插曲,含有网页链接的位置,像上面那样调用,会失败。查资料后,没太看懂,大概意思就是解析成了本网站内部的资源链接(网址为前缀为网站网址)。修改后的资源调用方式:

:href="friend.blogUrl"

在前面加一个 : ,然后调用的数据不用花括号包裹。

  • 怎么循环调用?

循环调用时,只需要在循环的父div标签里添加下面的内容:

v-for="friend in friends"

其中前面的friend 是自己定义的临时变量,in 相当于循环语法,friends 是数据中的名字

实践成果

经过一番折腾,终于实现了前面所说的要求。点此查看

值得注意的时,在打开界面时,会有一定的延时,看得到还没解析成功的那些字符,不过这不影响使用。

第一次使用Vue的更多相关文章

  1. 【保姆级教学】新手第一次搭建vue项目和初始化

    前端项目初始化步骤 安装vue脚手架 通过vue脚手架创建项目 配置vue路由 配置Element-UI组件库 配置axios库 初始化git远程仓库 将本地项目托管到github或者码云上 通过vu ...

  2. Vue.js 系列教程 ①

    原文:intro-to-vue-1-rendering-directives-events 译者:nzbin 如果要我用一句话描述使用 Vue 的经历,我可能会说“它如此合乎常理”或者“它提供给我需要 ...

  3. 基于 Laravel 开发 ThinkSNS+ 中前端的抉择(webpack/Vue)踩坑日记【ThinkSNS+研发日记系列】

    在上一篇文章< ThinkSNS+基于Laravel master分支,从1到 0,再到0.1>,简单的介绍了 社群系统ThinkSNS+ ,这里分享在开发过程中,前端选择的心理活动. L ...

  4. 用vue开发一个app(2,main.js)

    昨天跟着vue的官网搭建了vue的一个脚手架,我也是第一次用VUE一切都在摸索阶段. 今天试着看下里面脚手架里面有点什么东西 先看看main.js 导入了3个模块 一个vue,一个app,还有rout ...

  5. 关于Vue问题记录

    第一次安装Vue时,npm run dev报错处理 1.如果是报错:提示说没找到test这个文件夹 参考资料:https://segmentfault.com/q/1010000010893904 就 ...

  6. vue数据请求

    我是vue菜鸟,第一次用vue做项目,写一些自己的理解,可能有些不正确,欢迎纠正. vue开发环境要配置本地代理服务.把config文件加下的index.js里的dev添加一些内容, dev: { e ...

  7. Vue:渲染、指令、事件、组件、Props、Slots

    如果要我用一句话描述使用 Vue 的经历,我可能会说“它如此合乎常理”或者“它提供给我需要的工具,而且没有妨碍我的工作”.每当学习 Vue 的时候,我都很高兴,因为很有意义,而且很优雅. 以上是我对 ...

  8. 搭建vue项目环境

    前言 在开发本项目之前,我对vue,react,angular等框架了解,仅限于知道它们是什么框架,他们的核心是什么,但是并没有实际使用过(angular 1.0版本用过,因为太难用,所以对这类框架都 ...

  9. 一丢丢学习之webpack4 + Vue单文件组件的应用

    之前刚学了一些Vue的皮毛于是写了一个本地播放器https://github.com/liwenchi123000/Local-Music-Player,如果觉得ok的朋友可以给个star. 就是很简 ...

随机推荐

  1. 【selenium】基于python语言,如何用select选择下拉框

    在项目测试中遇到了下拉框选择的控件,来总结下如何使用select选择下拉框: 下图是Select类的初始化描述,意思是,给定元素是得是select类型,不是就抛异常.接下来给了例子:要操作这个sele ...

  2. ES6入门系列 ----- Reflect

    Reflect   是ES6 为了操作对象而提供的新的API, 目的是: 将Object 上一些明显属于语言内部的方法,比如 Object.defineProperty  放到 Reflect对象上 ...

  3. 理解AMD ,CMD,CommonJS规范

    https://blog.csdn.net/xcymorningsun/article/details/52709608 理解AMD ,CMD,CommonJS规范 2016年09月30日 10:33 ...

  4. WC.exe(Java实现)

    一.GitHub项目地址:https://github.com/nullcjm/mypage 二.项目相关要求: wc.exe 是一个常见的工具,它能统计文本文件的字符数.单词数和行数.这个项目要求写 ...

  5. group by 两个字段

    group by 的简单说明:  group by 一般和聚合函数一起使用才有意义,比如 count sum avg等 使用group by的两个要素:   (1) 出现在select后面的字段 要么 ...

  6. Asp.Net SignalR 使用记录 技术回炉重造-总纲 动态类型dynamic转换为特定类型T的方案 通过对象方法获取委托_C#反射获取委托_ .net core入门-跨域访问配置

    Asp.Net SignalR 使用记录   工作上遇到一个推送消息的功能的实现.本着面向百度编程的思想.网上百度了一大堆.主要的实现方式是原生的WebSocket,和SignalR,再次写一个关于A ...

  7. Mysql数据库 深度知识点

    停止命令:net stop mysql 启动命令:net start mysql   mysql登录命令 mysql -h ip -P 端口 -u 用户名 -p   mysql --version 或 ...

  8. 使用apache.tika判断文件类型

    一. 判断文件类型一般可采用两种方式 1. 后缀名判断 简单易操作,但无法准确判断类型 2. 文件头信息判断 通常可以判断文件类型,但有些文件类型无法判断(如word和excel头信息的前几个字节是一 ...

  9. MessagePack详解

    版权声明:分享是一种品质,开源是一种精神. https://blog.csdn.net/wangmx1993328/article/details/84477073 MessagePack Intro ...

  10. CEF 拦截打开超链接事件

    使用 CEF 加载指定页面后,如果你希望控制页面在打开超链接时根据自己预定义的一些行为来操作,比如在自己的 UI 框架中新建一个 Tab 页又或者阻止打开新的页面等.我们就需要通过 CEF 提供的两个 ...