赣州新闻网

首页 / 科技

女皇武则天:我不愿被 extends

2020-01-22 · 赣州新闻网 · 科技

Vue简说

Vue简说是国人写的一个前端框架,非常好用。Weex 是一个可以使用现代化的 Web 技术开发高性能原生应用的框架,以及适用于服务器的NUXT框架。

学到的知识

Vue相关的基础内容、基础语法、MVVM模式、组件化、生命周期、动画特效;以及一个实战项目,在实战项目中你会学到环境搭建、使用Git、数据模拟、本地开发、联调、真机测试以及上线。

项目说明

本项目我们参考了去哪网的布局,里面包含的知识点包括:根据不同城市选择不同景点、首页实现了多区域轮播、多区域列表的循环展示、城市详情页面的城市展示、搜索、左侧字母与城市名称联动特效、景点详情页面、通用画廊组件、件与件的头部组件、递归展示的列表组件。同时借助于有限的页面,我们使用了各种有用的知识点,比如:Axios:(啊搜思)对ajax数据的获取;Vue Router(Vue罗特):多页面之间的路由;VueX:各个组件之间的数据共享;异步组件:让代码上线,性能更优;Stylus:(思呆勒思):负责前端的样式;递归组件:实现了组件自身调用自己的功能;各种插件以及公用组件的拆分。

学习前提

最好用JavaScript、ES6、webpack(打包工具)、npm(包管理工具)

如何学习Vue

跟着官方文档走,地址在这里:Vue官方文档,安装也是非常简单的,点这里,点击下载里面的开发版本即可,其实就是复制该页面到一个新的文件vue.js里面即可。

HelloWorld

<!DOCTYPE html>

<html lang=\"en\">

<head>

<meta charset=\"UTF-8\">

<title>Hello World</title>

<script src=\"./vue.js\"></script>

</head>

<body>

<div id=\"app\">{{ message }}</div>

<script>

// var a =document.getElementById(\"app\");

// a.innerText=\"Hello World\"

var a = new Vue({

el:\" #app\",

data: {

message: \"Hello World1\",

}

})

</script>

</body>

</html>

el是element的简称,代表这个Vue的一个实例接管的范围,这里就是<div id=\"app\">{{ message }}</div>这个标签内的信息,data定义了一组数据,这个是以键值对的形式出现的,细心的你会发现这个vue在实例化的过程中传入的也是键值对,而键值对都是用一对大括号{}包围起来的。{{ message }}是插值表达式,有过其他语言基础的童鞋肯定不会陌生。现在我们尝试这样,新增一条语句:<div>{{ message }}</div>也就是这样:

<!DOCTYPE html>

<html lang=\"en\">

<head>

<meta charset=\"UTF-8\">

<title>Hello World</title>

<script src=\"./vue.js\"></script>

</head>

<body>

<div id=\"app\">{{ message }}</div>

<div>{{ message }}</div>

<script>

// var a =document.getElementById(\"app\");

// a.innerText=\"Hello World\"

var a = new Vue({

el:\" #app\",

data: {

message: \"Hello World1\",

}

})

</script>

</body>

</html>

输出结果是这样:

Hello World1

{{ message }}

原因就是你这个vue的实例只是接管了这个id为app的div标签范围内的内容。el限制了vue的作用范围,data用于定义一些数据。

假定你现在需要间隔2秒输出Bye World,你之前可能是这样写代码:

var a =document.getElementById(\"app\");

a.innerText=\"Hello World\";

setTimeout(function () {

a.innerText=\"Bye World\"

},2000)

但是如果你使用了vue,你就不需要关注任何有关DOM的编码了,你只要这样写:

var a = new Vue({

el:\" #app\",

data: {

message: \"Hello World1\",

}

})

setTimeout(function () {

a.$data.message = \"Bye World\"

},2000)

你不用关心DOM上的操作,只需要关注数据的管理即可,这里的$data就是给上面实例中的data取了一个别名,然后根据键来取值就可以。vue对数据管理非常友好,因此只要数据发生了改变,页面显示就会跟着改变。

使用Vue创建的一个todolist

<body>

<div id=\"app\">

<input v-model=\"inputValue\">

<button type=\"button\" @click=\"handleClick\">点击</button>

<ul>

<li v-for=\"(item,index) of lists\" :key=\"index\">{{ item }}</li>

</ul>

</div>

<script src=\"https://cdn.jsdelivr.net/npm/vue/dist/vue.js\"></script>

<script type=\"text/javascript\">

var app = new Vue({

el:\"#app\",

data:{

inputValue:\"\",

lists:,

},

methods:{

handleClick:function () {

  • this.lists.push(this.inputValue);

this.inputValue=\'\';

},

}

})

</script>

</body>

测试项目代表内容城市信息不用会昌我不