001-基础知识

Vue 简单介绍

Vue 作为目前最受欢迎的前端框架,上手难度低,采用 axios 作为前后台交互方式,Vue-router 作为路由,vuex 管理数据流,Vue-i18n 进行语言切换,拥有生命周期、及组件系统,采用 webpack 全家桶打包优化性能,结合 UI 框架 elementUI,让前端开发变得更为简单,便捷;

Vue 官网:https://cn.vuejs.org/v2/guide/
Vue-router 官网:https://router.vuejs.org/zh/guide/
axios 文档:http://www.axios-js.com/zh-cn/docs/
Vue-i18n 官网:http://kazupon.github.io/vue-i18n/started.html#html
Vuex : https://vuex.vuejs.org/zh/

Vue 引入

如果是开发项目,需要采用 Vue-cli 脚手架 (https://cli.vuejs.org/zh/guide/ ) 进行开发,自己学习可以通过 js 的形式进行 Vue 引入,本文只做基础学习,所以采用 js 形式进行 Vue 引入:

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

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


    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
    <script>
        var app = new Vue({
            el: '#app',
            data: {
                // 数据
                message: 'hello vue !'
            },
            methods: {
                // 方法
            }
        });
    </script>
</body>

</html>

Vue 内置指令

  1. {{}} 、v-text 、 v-html

    <div id="app">
    	<div>{{ message }}</div>    <!-- hello vue ! -->
    	<div v-text="message"></div><!-- hello vue ! -->
    	<div v-html="message"></div><!-- hello vue ! -->
    </div>
    
    var app = new Vue({
        el: '#app',
        data: {
            // 数据
            message: 'hello vue !'
        },
        methods: {
            // 方法
        }
    });
    
  2. v-on: 、@

    <div id="app">
       <div v-on:click="hello()">点击</div>    <!-- 点击,控制台输出:'hello vue !' -->
       <div @click="hello()">点击</div>    <!-- 点击,控制台输出:'hello vue !',最常用 -->
       <a href="https://www.baidu.com/" @click.prevent="hello()">阻止默认事件</a>
    </div>
    
    var app = new Vue({
        el: '#app',
        data: {
            // 数据
        },
        methods: {
            // 方法
            hello(){
                console.log('hello vue !');
            }
        }
    });
    
  3. v-bind: 、:

    <div id="app">
        <div v-bind:title="titleText"> hover me </div>  <!-- hover 效果展示 'i love test' -->
        <div :title="titleText"> hover me </div>    <!--  最常用 -->
    </div>
    
    var app = new Vue({
        el: '#app',
        data: {
            // 数据
            titleText: 'i love test'
        },
        methods: {
            // 方法
        }
    });
    
  4. v-model

    <div id="app">
        <div>{{ msg }}</div>
        <input type="text" v-model="msg">   <!-- 双向数据绑定,'i love vue' -->
    </div>
    
    var app = new Vue({
        el: '#app',
        data: {
            // 数据
            msg: 'i love vue'
        },
        methods: {
            // 方法
        }
    });
    
  5. v-for

    <div id="app">
        <p v-for="(item, index) in list" :key="index">{{item}} ---- {{index}}</p>
        <!-- 
            元素一 ---- 0
            元素二 ---- 1
            元素三 ---- 2
            元素四 ---- 3 
        -->
    </div>
    
    var app = new Vue({
        el: '#app',
        data: {
            // 数据
            list: ['元素一', '元素二', '元素三', '元素四'],
        },
        methods: {
            // 方法
        }
    });
    
  6. v-if、v-show

    <div id="app">
        <span v-if="flag">隐藏元素</span>   <!-- 移除、添加形式 -->
        <span v-show="flag">隐藏元素</span> <!-- display:none / block -->
    </div>
    
    var app = new Vue({
        el: '#app',
        data: {
            // 数据
            flag: false
        },
        methods: {
            // 方法
        }
    });
    

Vue 自定义指令

Vue 自定义指令用于:简单的操作DOM、修改样式、不依赖数据的功能

<input type="text" v-focus>
//自定义指令
Vue.directive('focus', {
    //立即执行,only one 
    bind() {},
    //将指令插入dom中时执行
    inserted: function (el) {
        el.focus();
    },
    //组件更新时会触发
    updated() {}
})

Vue 最常用的生命周期函数

  1. created(): data、methods 都已经被初始化好了,init data 使用
  2. mounted(): 模板挂载完成 可以操作DOM了
  3. beforeDestroy(): 卸载监听事件、清理定时器使用,避免页面不必要的性能消耗
var app = new Vue({
    el: '#app',
    data: {
        msg: 'some message'
    },
    created() {
        //data、methods 都已经被初始化好了、请求数据等操作
        console.log(this.msg);
    },
    mounted() {
        //模板挂载完成 可以操作DOM了   
    },
    //组件销毁、清除定时器、取消监听事件等
    beforeDestroy() {

    },
});

data & 过滤器 & 计算属性

  1. data: 放数据的容器,值不会自己改变;

  2. 过滤器: 对 data 数据做简单处理,值刷新,会自动更新;

    <div id="app">
        <div>{{newday | data1 }}</div>
    </div>
    
     //自定义过滤器
    Vue.filter('data1', function (data) {
        var d = new Date(data);
        var y = d.getFullYear();
        var m = d.getMonth() + 1;
        var day = d.getDate();
    
        return `${y}-${m}-${day}`;
    });
    
  3. 计算属性:对数据进行监听,有值修改,就会重新计算;

    <div id="app">
        <input type="text" v-model="input1"> +
        <input type="text" v-model="input2"> =
        <input type="text" v-model="input3">
    </div>
    
    var app = new Vue({
       el: '#app',
       data: {
           input1: 0,
           input2: 0,
       },
       computed: {
           'input3': function () {
               return parseInt(this.input1) + parseInt(this.input2);
           }
       },
    });
    

axios

具体用法请参考文档http://www.axios-js.com/zh-cn/docs/,本文仅模拟一个 get 接口:

<div id="app">
    <h2> axios </h2>
    <div v-if="isLoading">数据加载中。。。</div>
    <div v-if="!isLoading">
        <p v-for="(item, index) in axiosGetDataArr" :key="index">{{item.name}} ---- {{index}}</p>
    </div>
</div>
<script src="https://unpkg.com/axios/dist/axios.min.js"></script>
<script>
    var app = new Vue({
        el: '#app',
        data: {
        	// 存放数据使用
            axiosGetDataArr: [],
            isLoading: true,
        },
        methods: {
            getData() {
                let that = this;
                that.isLoading = true;
                setTimeout(() => {
                	// test.json 文件
                	//{
    				// 	"results": [
				    //   	{"name": "zhangsan", "age": "18"},
				    //   	{"name": "zhangsan2", "age": "18"},
				    //   	{"name": "zhangsan3", "age": "18"}
				    // 	]
					//}
                    axios.get('./test.json')
                        .then(function (response) {
                            that.isLoading = false;
                            that.axiosGetDataArr = response.data.results;
                        })
                        .catch(function (error) {
                            console.log(error);
                        });
                }, 3000);

            },
        },
        created() {
            this.getData();
        },
    });
</script>

国际化: vue-i18n

本文采用 js 方式引入 vue-i18n 文件: http://kazupon.github.io/vue-i18n/started.html#html

<div id="app">
    <button @click="changeLanguage()">{{ $t('common.changeLanguageBtn') }}</button>
    <div>{{ $t('common.test1') }}</div>
</div>
<script src="https://unpkg.com/vue-i18n/dist/vue-i18n.js"></script>
<script>

    Vue.use(VueI18n);
    
    const i18n = new VueI18n({

        locale: 'zh', // 定义默认语言为中文 

        messages: {

            'zh': {
                "common": {
                    "test1": "你好,i18n!",
                    "changeLanguageBtn": "切换语言"
                }
            },

            'en': {
                "common": {
                    "test1": "hello, i18n !",
                    "changeLanguageBtn": "Change Language"
                }
            }

        }

    });

    var app = new Vue({
        el: '#app',
        data: {},
        methods: {
            changeLanguage() {

                if (this.$i18n.locale === "en") {
                    this.$i18n.locale = "zh"
                } else {
                    this.$i18n.locale = "en";
                }

            }
        },
        i18n,
    });
</script>

总结

  1. Vue 学习基础部分包括:指令、生命周期、过滤器、计算属性、axios、国际化 等内容;
  2. 后续博主会继续更新基础模块的 组件、路由、vuex 等知识;
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: js-001-2017是一个代号,代表2017年发布的JavaScript语言相关的规范或标准。在计算机编程领域,JavaScript是一种广泛使用的脚本语言,主要用于网页的交互逻辑和行为的实现。js-001-2017可能是对该语言的一次更新或修订,旨在提供更好的开发体验和更强大的功能。 随着互联网的发展,使用JavaScript的应用也日益增多。js-001-2017中可能包含了对原有语法的改进、新的功能特性的添加,以及一些修复可能存在的漏洞或问题。通过发布新的规范,开发者们可以更好地了解和掌握JavaScript的最新语法和特性,以便更高效地进行编程。 JavaScript的重要性不容忽视,它被广泛运用于前端开发、移动应用开发、后端开发等多个领域。通过学习和应用js-001-2017中的规范,开发者们可以更好地与JavaScript这门语言进行互动,更好地实现自己的编程任务。 总之,js-001-2017是JavaScript语言的一个规范或标准,通过它的学习和应用,开发者们可以更好地掌握和应用最新的JavaScript语法和特性,提升自己在编程领域的技能水平。 ### 回答2: js-001-2017是指JavaScript编程语言的入门课程,是2017年开设的课程。这门课程主要教授JavaScript的基础知识和应用技巧。JavaScript是一种面向对象的脚本语言,广泛用于Web开发。 该课程的目标是让学生从零基础开始学习JavaScript,并掌握其基本语法、变量、运算符、流程控制、函数、数组等基本概念。在课程中,学生将学习如何使用JavaScript编写交互性的前端网页。通过实践项目和练习,学生将学会使用JavaScript实现表单验证、动态网页效果、DOM操作、事件处理等技术。 除了基础知识外,该课程也会介绍一些常用的JavaScript库和框架,如jQuery、React等,以帮助学生更高效地开发Web应用程序。 这门课程对于想要从事Web前端开发的学生来说非常重要。JavaScript是Web开发中不可或缺的一门技术,它可以让我们的网页更加动态和交互。通过学习js-001-2017,学生将为自己以后的学习和工作打下坚实的基础。 总之,js-001-2017是一门非常有意义且实用的课程,通过学习这门课程,学生将获得JavaScript编程的入门知识和技巧,为自己的Web开发之路打下坚实的基础。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值