学习day47

这篇具有很好参考价值的文章主要介绍了学习day47。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Vue 

现在开始学Vue了,问了同学,他说这个东西的内容很多。然后就跟着尚硅谷来学Vue了

用的是visual studio code,所以又下了一个visual。

首先时下载Vue,我再Vue3的官网是没有看到下载的,所以是跑到Vue2去下载的

将它自动跳出的警告去掉。分别先是在默认浏览器的扩展中安装了一个vue.js devtools插件

然后是在代码中将

<script type="text/javascript">

        Vue.config.productionTip=false //阻止vue在启动时生成生产提示

    </script>

写入

1.想让vue工作,就必须创建一个vue实例,且要传入一个配置文件

2.root容器里的代码依然符合html的规范,只不过混入了一些特俗的Vue语法

3.root容器里的代码被成为【Vue模板】

4.Vue实例和容器时一一对应的

5.真实开发中只有一个Vue实例,并且会配合着组件一起使用

6.{{xxx}}中的xxx要写js表达式,且xxx可以自动读取到data中的所有属性

7.一旦打他中的数据发生改变,那么页面中用到该数据的地方也会自动更新

Vue的模板语法

Vue模板语法又两大类:

          1.插值语法:

             功能:用于解析标签体内容

             写法:{{xxx}},xxx是js的表达式,且可以直接读取到data中的所有属性

          2.指令语法:

             功能:用于解析标签(包括:标签属性,标签体内容,绑定事件......)。

             举例:v-bind:href="xxx" 或 简写为 :href="xxx",xxx同样是js的表达式

                   且可以直接读取到data中的所有属性

             备注:Vue中有很多的指令,且形式都是v-????,此处我们只是拿v-bind举例

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>模板语法</title>
    <script type="text/javascript" src="../js/vue.js"></script>
</head>
<body>
    <!-- 
        Vue模板语法又两大类:
          1.插值语法:
             功能:用于解析标签体内容
             写法:{{xxx}},xxx是js的表达式,且可以直接读取到data中的所有属性
          2.指令语法:
             功能:用于解析标签(包括:标签属性,标签体内容,绑定事件......)。
             举例:v-bind:href="xxx" 或 简写为 :href="xxx",xxx同样是js的表达式
                   且可以直接读取到data中的所有属性
             备注:Vue中有很多的指令,且形式都是v-????,此处我们只是拿v-bind举例
     -->



    <!-- 准备好一个容器 -->
    <div id="root">
        <h1>插值语法</h1>
        <h3>你好,{{name}}</h3>
        <hr>

        <h1>指令语法</h1>
        <a v-bind:href="school.url">点我去{{school.name}}学习</a>
    </div>
</body>

<script type="text/javascript">
    Vue.config.productionTip=false

    new Vue({
        el:"#root",
        data:{
            name:'jack',
            
            school:{
                name:'尚硅谷',
                url:'http://www.atguigu.com'
            }
        }
    })


</script>

</html>

Vue中有两种数据绑定的方式:

          1.单向绑定(v-bind):数据只能从data流向页面

          2.双向绑定(v-model):数据不仅能从data流向页面,还可以从页面流向data

            备注:

              1.双向绑定一般都是应用在表单元素上面(如:input,select等)

              2.v-model:value 可以简写为v-model,因为v-model默认收集的就是value值

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>数据绑定</title>
    <script type="text/javascript" src="../js/vue.js"></script>
</head>
<body>
    <!-- 
        Vue中有两种数据绑定的方式:
          1.单向绑定(v-bind):数据只能从data流向页面
          2.双向绑定(v-model):数据不仅能从data流向页面,还可以从页面流向data
            备注:
              1.双向绑定一般都是应用在表单元素上面(如:input,select等)
              2.v-model:value 可以简写为v-model,因为v-model默认收集的就是value值

     -->


    <div id="root">
        <!-- 普通写法 -->
        <!-- 单向数据绑定:<input type="text" v-bind:value="name"><br>
        双向数据绑定: <input type="text" v-model:value="name"><br> -->


        <!-- 简写 -->
        单向数据绑定:<input type="text" :value="name"><br>
        双向数据绑定: <input type="text" v-model="name"><br>

        <!-- 以下代码是错误的,因为v-model只能应用在表单类元素(输入类元素)上 -->
        <!-- <h2 v-model:x="name">你好啊</h2> -->
    </div>
    
</body>
<script type="text/javascript">
    Vue.config.productionTip=false

    new Vue({
        el:"#root",
        data:{
            name:'cy'
        }
    })

</script>


</html>

data和el的两种写法

          1.el的两种写法

             (1).new Vue式配置el的属性

             (2).先创建Vue实例,随后再通过vm.$mount('#root')指定el的值

          2.data有两种写法

             (1)对象式

             (2)函数式

          3.一个重要的原则

             由Vue管理的函数,一定不要写箭头函数,一旦写了箭头函数,this就不再是Vue实例了

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>el和data的两种写法</title>
    <script type="text/javascript" src="../js/vue.js"></script>
</head>
<body>
    <!-- 
        data和el的两种写法
          1.el的两种写法
             (1).new Vue式配置el的属性
             (2).先创建Vue实例,随后再通过vm.$mount('#root')指定el的值

          2.data有两种写法
             (1)对象式
             (2)函数式
          3.一个重要的原则
             由Vue管理的函数,一定不要写箭头函数,一旦写了箭头函数,this就不再是Vue实例了

     -->


    <div id="root">
        <h1>你好,{{name}}</h1>
    </div>
    
</body>
<script type="text/javascript">
    Vue.config.productionTip=false

    //el的两种写法
    // const v= new Vue({
    //     //el:"#root", 第一种写法
    //     data:{
    //         name:'尚硅谷'
    //     }
    // })
    // console.log(v)
    // v.$mount('#root') //第二种写法


    //data的两种写法
    new Vue({
        el:'#root',
        //data的第一种写法:对象式
        // data:{
        //     name:'尚硅谷'
        // }


        //data的第二种写法
        data:function(){
            return{
                name:'尚硅谷'
            }
        }
    })


</script>

</html>

MVVM模型:

          1.M:模型(Model):data中的数据

          2.V:视图(View):模板代码

          3.VM:视图模型(ViewModel):Vue实例

        观察发现:

          1.data中所有的属性,最后都出现在了vm身上

          2.vm身上所有的属性及Vue原型上所有的属性,在Vue模板中都可以直接使用文章来源地址https://www.toymoban.com/news/detail-587413.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>理解MVVM</title>
    <script type="text/javascript" src="../js/vue.js"></script>
</head>
<body>
    <!-- 
        MVVM模型:
          1.M:模型(Model):data中的数据
          2.V:视图(View):模板代码
          3.VM:视图模型(ViewModel):Vue实例
        观察发现:
          1.data中所有的属性,最后都出现在了vm身上
          2.vm身上所有的属性及Vue原型上所有的属性,在Vue模板中都可以直接使用

     -->

    <div id="root">
       <h1>学校名称:{{name}}</h1>
       <h1>学校地址:{{adress}}</h1>
    </div>

    <script type="text/javascript">
        Vue.config.productionTip=false //阻止vue在启动时生成生产提示

        const vm=new Vue({
            el:"#root",
            data:{
                name:'尚硅谷',
                adress:'北京'
            }
        })
        console.log(vm)
    </script>
</body>
</html>

Object.defineproperty

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>回顾Object.defineproperty方法</title>
    <script type="text/javascript"></script>
</head>
<body>
<script type="text/javascript">
    let number=18
    let person={
        name:'张三',
        sex:'男'
    }

    Object.defineProperty(person,'age',{
       // value:18,  //数据的直传
       //enumerable:true //控制属性是否可以枚举,默认值是false
       //writable:true  //控制属性是否可以被修改 默认值是false
       //configurable:true  //控制属性是否可以被删除,默认值是false



       //当有人读取person的age属性时,get函数(getter)就会被调用,且返回值就是age的值
       get:function(){
        console.log('有人读取age属性')
        return number
       },

       //当有人修改person的age属性时,set函数(setter)就会被调用,且会收到修改的具体值
       set(value){
        console.log('有人修改了age属性,且值是',value)
        number=value
       }
    })
   
</script>
</body>
</html>

到了这里,关于学习day47的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Day47 算法记录|动态规划14子序列

    这道题和718. 最长重复子数组的区别:这道题的 子序列可以不连续 这个视频讲解的很好 和上面一道题一摸一样 以绘制连接两个数字 A[i] 和 B[j] 的直线,只要 A[i] == B[j],且直线不与任何其他连线(非水平线)相交。 讲解的很好的一个 d p [ i ] dp[i] d p [ i ] 表示包括下标i(以

    2024年02月15日
    浏览(27)
  • 研习代码 day47 | 动态规划——子序列问题3

            1.1 题目         给定字符串  s  和  t  ,判断  s  是否为  t  的子序列。         字符串的一个子序列是原始字符串删除一些(也可以不删除)字符而不改变剩余字符相对位置形成的新字符串。(例如, \\\"ace\\\" 是 \\\"abcde\\\" 的一个子序列,而 \\\"aec\\\" 不是)。

    2024年02月04日
    浏览(31)
  • [100天算法】-最长递增子序列的个数(day 47)

    思路 代码 JavaScript Code C++ Code 复杂度分析 时间复杂度:$O(N^2)$。N 是数组  nums  的长度。 空间复杂度:$O(N)$。N 是辅助数组  length  和  count  的长度。

    2024年02月07日
    浏览(36)
  • HCIE-Security Day47:AC准入控制MAC

    MAC认证是一种基于接口和终端MAC地址对用户的访问权限进行控制的认证方法。 免安装:用户终端不需要安装任何客户端软件。 免输入:认证过程中,不需要手动输入用户名和口令。 哑终端友好:能够对不具备802.1x认证能力的终端进行认证,比如打印机和传真机等哑终端。

    2023年04月16日
    浏览(12)
  • Day 29 | 回溯 491.递增子序列 、 46.全排列 、47.全排列 II

    题目 文章讲解 视频讲解 思路:去重原则:元素,树层不可以重复取,树枝可以。hash这种去重方式不需要回溯 题目 文章讲解 视频讲解 思路:used[i]这种去重方式需要回溯 注意比较两种去重方式 permute(排列) 题目 文章讲解 视频讲解 思路:去重之前一定做排序,used[i-1] =

    2024年01月25日
    浏览(38)
  • Day31 46全排列 47全排列II 回溯去重tips 51N皇后 37解数独

    给定一个 没有重复 数字的序列,返回其所有可能的全排列。 示例: 输入: [1,2,3] 输出: [ [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1] ]  排列问题与组合问题的不同之处就在于,没有startIndex,同时需要设置一个used数组,遍历过的就设置成true,下次遇到时跳过。 给定一个可包含重

    2024年01月20日
    浏览(34)
  • 【100天精通python】Day47:python网络编程_Web开发:web服务器,前端基础以及静态服务器

    目录 1  网络编程与web编程 1.1 网络编程 1.2 web编程  1.3 前后端交互的基本原理/

    2024年02月11日
    浏览(36)
  • 代码随想录刷题笔记 DAY 29 | 非递减子序列 No.491 | 全排列 No.46 | 全排列 II No. 47

    01. 非递减子序列(No. 491) 题目链接 代码随想录题解 1.1 题目 给你一个整数数组 nums ,找出并返回所有该数组中不同的递增子序列,递增子序列中 至少有两个元素 。你可以按 任意顺序 返回答案。 数组中可能含有重复元素,如出现两个整数相等,也可以视作递增序列的一种

    2024年02月21日
    浏览(34)
  • Linux 学习记录47(QT篇待完成)

    信号与槽机制,是qt的核心机制,能够完成多个组件之间的互相通信,即一个组件发射信号,其他组件用于相应该信号,并做出相应处理工作 信号:信号就是信号函数,可以是组件自身提供,也可以是用户自己定义,自定义时,需要在类体的signals权限下进行定义,并且该函数

    2024年02月13日
    浏览(27)
  • 从零开始学习软件测试-第47天笔记

    yaml yaml是一种所有编程语言都可用的友好的数据参数化标准。 yaml里只能使用字典或列表这两种数据类型。 使用缩进表示层级关系,但只允许使用空格缩进。 缩进时空格的数量不重要,只要在同一层级数据左侧对齐即可。 大小写敏感。 下载yaml模块 pip install PyYAML yaml的写法

    2024年02月07日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包