why vue?

之前在接触和深入了解vue的时候,只注重当下实用,将安装流程走通之后,就开始根据api文档边看边刚代码;

但今天,细细的由介绍开始读,发现vue的Introduction里面,那段关于介绍的短视频,是对vue入门以及深入了解的一个非常好的媒介。所以我就开始沿着视频的时间顺序,将视频内容及之前所学结合起来,为自己的局限进行一些拓展。

(一)vue是一款友好的、多用途且高性能的javascript框架(approachable、versatile、performant),它能帮你建造一个可维护性和可测试性更强的代码库(maintainable testable);vue是渐进式的javascript框架,也就是说,如果你已经有一个现成的服务端应用,你可以将VUE作为该应用的一部分嵌入其中,带来更加丰富的交互体验。或者如果你希望将更多业务逻辑放到前端来实现,那么VUE的核心库及其生态系统也可以满足各式需求。和其他前端框架一样,VUE允许将一个网页分割成可复用的组件。每个组件都包含属于自己的HTML、CSS、JAVASCRIPT以用来渲染网页中相应的地方。

(二 )eg.  构建一个商品库存的页面

<!--从网页中需要展示的数据开始-->
<div id='app'>
    <!--<h2>X are in stock.</h2>-->
    <!--将X修改为一个表达式,用{{}}括起来-->
    <h2>{{product}} are in stock.</h2>
</div>
<!--引入vue库-->
<script src='https://unpkg.com/vue/dist/vue.js'></script>
<script>
    const app = new Vue({
        el:'#app',//'el'是元素(element)的缩写
        data:{
            product:'Boots'
        }//将数据放入一个对象
    })
</script>

1、引入vue库

a.  在vue官网下载vue.min.js并用<script>标签引用

b.使用CDN方法  

2、创建一个VUE的实例

a、通过应用的ID嵌入到我们的根元素中。

可以在控制台改变product的值,在product值改变的同时,VUE自动更新了HTML,这是因为VUE是响应式的(reactive),也就是说当我们的数据变更时,VUE会帮你更新所有网页中用到它的地方。除了字符串,VUE对其他类型的数据也是如此。

b、将简单商品换成一个商品数组 product->products、h2->无序列表ul,同时为数组中的每个商品创建一个列表项,使用VUE中的v-for指令,让每个商品都拥有各自的列表项。

<!--从网页中需要展示的数据开始-->
<div id='app'>
    <ul>
        <li v-for = 'product in products'>
            {{product}}
        </li>
    </ul>
</div>
<!--引入vue库-->
<script src='https://unpkg.com/vue/dist/vue.js'></script>
<script>
    const app = new Vue({
        el:'#app',//'el'是元素(element)的缩写
        data:{
            products:[
                'Boots',
                'Jacket',
                'Hat'
            ]
        }//将数据放入一个对象
    })
</script>

c、从一个实际的API获取商品信息

created(){
    fetch('https://api.myjson.com/bins/74163')//接口网址
       .then(response => response.json())
       .then(json=>{
            this.products =json.products
            // console.log(json);
        })
}

VUE获取接口数据,也可以用ajax来获取接口数据

$.ajax({
   contentType: 'application/json;charset=UTF-8',
   url: '',//接口网址
   type: 'post',
   dataType: 'json',
   data: JSON.stringify(addList),//addList为传到接口的数组
   success: function (res) {}
})  

 视频中的api返回的数据为

则在无序列表中  将  {{product}}-> {{product.quantity}}  {{product.name}}

--特别留意数量为0 的项目

<ul>
    <li v-for = 'product in products'>
        {{product.quantity}}  {{product.name}}
        <span v-if="product.quantity === 0">
             -OUT OF STOCK
        </span>
    </li>
</ul>

--打印列表中商品总数

reduce方法在这里用来把每个商品的数量加在一起

 ---VUE的chrome插件   需要安装

 ---在控制台进行操作 eg. pop()  html显示商品及商品总数会同时变化(响应式)

 ---添加按钮交互

当增加某一个商品数量时,商品总数会同时发生变化,函数计算可在行内完成,也可在组件内完成,然后调用;

--直接写入数量

创建一个文本框,并通过v-model指令绑定商品数量字段,指明这是一个数字。

(三)如果我们构建一个大型的应用,在这一点上,我们可能需要将东西分割成为各自的组件和文件,VUE甚至有一个命令行工具,使快速初始化一个真实的工程变得非常简单,甚至可是使用VUE的单文件组件(包含了各自的html、css、javascript)

这篇文章只是根据不到六分钟的视频做出的一个小总结,正如视频末尾vue的作者尤雨溪所讲这只是vue可以做的一些皮毛的东西,在VUE的生态系统中有各种丰富的东西,可以帮助人们构建、组织发展前端应用。

猜你喜欢

转载自blog.csdn.net/ni_meng_/article/details/85377847
Why