vue学习笔记(一)

vue学习笔记(一)一、初使用vue1.在head中引入vue.js文件<script src=”./js/vue.js”></script>2.编写vue实例例子先通过原生js获取div并改变内容,两秒后改变值<div id=”app”> <!– {{content}} –> …

大家好,又见面了,我是你们的朋友全栈君。

一、初使用vue

1.在head中引入vue.js文件

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

2.编写vue实例例子

先通过原生js获取div并改变内容,两秒后改变值

<div id="app">
                <!-- {
  
  {content}}   -->
               你好
        </div>
        <script>
            //  js获取div并赋值
            var dom = document.getElementById('app');
            setTimeout(function() {
                dom.innerHTML = 'shenshenhsne'
            }, 2000);
       </script>

通过vue进行编写

<body>
        <div id="app">
                {
  
  {content}}  
        </div>
        <script>
            // 使用vue进行改变content内容
            var app = new Vue({
                    el:'#app', 
                    data:{
                        content:'Hello',
                    }
            });
            setTimeout(function() {
                app.$data.content = 'World';
            }, 2000);
        </script>
</body>

3、v-model和v-on的使用

<body>
        <div id="app">
                <!--  v-model 数据双向绑定 -->
                <input type="text"  v-model="inputvalue"/>
                <!--  v-on  绑定事件 -->
                <button v-on:click="handleBtnClick">提交</button>  
                <ul>
                    <li v-for="item  in list">
                        {
  
  {item}}
                    </li>
                </ul>               
        </div>
        <script>
            var app = new Vue({
                    el:'#app', 
                    data:{
                       list:[],
                       inputvalue:'',
                    },
                    methods:{
                        handleBtnClick:function(){
                            this.list.push(this.inputvalue);    //  当点击之后会把inputvalue中的值进行循环遍历出
                               this.inputvalue = '';
                            // alert(this.inputvalue);   //  获取到data中的inputvalue值
                        }
                    }
                })
        </script>
</body>

v-for:基于源数据多次渲染元素或模板块。 list指的是data数据中的list

v-on:绑定事件监听器。事件类型由参数指定。  当点击按钮时会调用methods中的handleBtnClick方法。

v-model:在表单控件或者组件上创建双向绑定。

注:M:相当于操作data数据

        V:div模板展示

       VM:vue就是VM层

      随着数据变化,页面跟着变化。 vue会监听到视图层改变然后改变数据,也会监听到数据变化改变视图层。

问:vue是怎么知道数据改变了,怎么知道该改变视图?

简答:vue源码中用到了es5中的Object.defineProperty,同时也引入了虚拟DOM机制,通过Object.defineProperty和虚拟DOM来进行实现VM层。

4、组件名称大小写问题:
(1)官方强烈推荐要遵循W3C规范的自定义组件名,即组件名称全部使用小写字母且用 – 连接
(2)组件名称可以使用驼峰命名法,但是在使用的时候必须大写转小写,且用 – 连接,例如:

vue学习笔记(一)

5、v-bind使用以及全局组件

动态地绑定一个或多个特性,或一个组件 prop 到表达式

<div id="app">
                <!--  v-model 数据双向绑定 -->
                <input type="text"  v-model="inputvalue"/>
                <!--  v-on  绑定事件 -->
                <button v-on:click="handleBtnClick">提交</button>  
                
                    <!-- 通过list循环出多少个组件,把循环出的值借助v-bind中的content传递过去 -->
                    <!-- 动态地绑定一个或多个特性,或一个组件 prop 到表达式 -->
                    <todo-item  v-bind:content="item" v-for="item  in list"></todo-item>
                </ul>               
        </div>
        <script>
            // 定义全局组件,直接在模板中使用
            // 使用父组件传递过来的数据,一定对content进行接收
            Vue.component("TodoItem",{
                props:['content'],
                template:"<li>{
  
  {content}}</li>"
            })
            var app = new Vue({
                    el:'#app', 
                    data:{
                       list:[],
                       inputvalue:'',
                    },
                    methods:{
                        handleBtnClick:function(){
                            this.list.push(this.inputvalue);    //  当点击之后会把inputvalue中的值进行循环遍历出
                               this.inputvalue = '';
                            // alert(this.inputvalue);   //  获取到data中的inputvalue值
                        }
                    }
                })
        </script>

6、局部组件(全局组件中部分代码)

<script>
            // 定义局部组件,必须进行注册(把TodoItem注册到vue实例中)
            var TodoItem = {
                props:['content'],
                template:"<li>{
  
  {content}}</li>"
            }
            //  注册组件为components
            var app = new Vue({
                    el:'#app', 
                    components: {
                        TodoItem:TodoItem
                    },
                    data:{
                       list:[],
                       inputvalue:'',
                    },
                    methods:{
                        handleBtnClick:function(){
                            this.list.push(this.inputvalue);    //  当点击之后会把inputvalue中的值进行循环遍历出
                               this.inputvalue = '';
                            // alert(this.inputvalue);   //  获取到data中的inputvalue值
                        }
                    }
                })
        </script>

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/147172.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 把字符串转换成float类型_c++如何将string类型转换成int类型

    把字符串转换成float类型_c++如何将string类型转换成int类型在学习数据结构经常碰到各种数据间转换的例程,就想c的库里面有没有现有的函数,用的时候直接调用就好,一查果然有:整型转字符串itoa();字符串转整型atoi();用的时候需要添加头文件#include<stdlib.h>。itoa();功能:将整形(int)转换为字符串(char),十进制转任意进制,以字符形式输出(转换后的结果以字符形式输出)使用方式:首先要申明头文件stdlib.hchar*_itoa(intvalue,char*string,intradix).

  • yolo 实例分割_jacobi椭圆函数

    yolo 实例分割_jacobi椭圆函数Abstract我们提出了一个简单的、完全卷积的实时实例分割模型,在MS-COCO上达到29.8map,在单个TitanXp上以33.5fps的速度进行评估,这比以往任何竞争方法都要快得多。而且,我们只在一个GPU上训练就得到了这个结果。我们通过将实例分割分成两个子任务来实现这一点:(1)生成一组原型掩码;(2)预测每个实例的掩码系数。然后,我们通过将原型与掩码系数结合起来,生成实例mask…

  • Linux 内核编译(三天吐血经历!)[通俗易懂]

    Linux 内核编译(三天吐血经历!)[通俗易懂]写在前面的话:本人大二,东南大学一个软工狗,正在修一门名为《操作系统原理》的坑爹课!前几天做一个实验:编译Linux内核并向其增加一个系统调用。这个实验实在是太让人无语了,各种坑!昨天这个时候,我还在苦苦煎熬中。在今天凌晨四点才做好。为了让其他人少走一些弯路,鄙人就把自己的经验以及教训写下来。里面会有一些不足,希望大家多多指教~废话不多说,那就开始吧:一、实验前的准备:Vm

  • getResourceAsStream和getClassLoader

    getResourceAsStream和getClassLoader1. Class.getResourceAsStream(Stringpath):path不以’/’开头时默认是从此类所在的包下取资源,以’/’开头则是从ClassPath根下获取。其只是通过path构造一个绝对路径,最终还是由ClassLoader获取资源。 2.Class.getClassLoader.getResourceAsStream(Stringpath):默认则

  • Java事务管理[通俗易懂]

    Java事务管理[通俗易懂]事务的ACID属性:原子性(Atomicity)、一致性(Consistency)、隔离性或独立性(Isolation)和持久性(Durabilily)一、Java事务管理Java事务管理有三种类型:JDBC事务、JTA(JavaTransactionAPI)事务、容器事务1.1JDBC事务JDBC的一切行为包括事务是基于一个Connection的,JDBC通过Connec…

  • JDK1.8源码分析:线程安全的CopyOnWriteArrayList与CopyOnWriteArraySet

    点击上方“全栈程序员社区”,星标公众号 重磅干货,第一时间送达 作者:服务端开发 blog.csdn.net/u010013573/article/details/87463023…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号