• vue学习001


    1.vue程序的基本构成

    1. html>
    2. <html lang="en">
    3. <head>
    4. <meta charset="UTF-8">
    5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
    6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
    7. <title>hello worldtitle>
    8. <script src="https://unpkg.com/vue@next">script>
    9. head>
    10. <body>
    11. <div id="root"> div>
    12. body>
    13. <script>
    14. Vue.createApp({
    15. data() {
    16. return {
    17. count: 0
    18. }
    19. },
    20. methods: {
    21. handleBtnClick() {
    22. this.count = 0;
    23. }
    24. },
    25. mounted() {
    26. setInterval(() => {
    27. ++this.count;
    28. }, 1000/10);
    29. console.log("run mounted...");
    30. },
    31. template: `
    32. count is {{count}}

    33. `
    34. }).mount('#root');
    35. script>
    36. html>
    • 引入线上cdn的vue库;
    • Vue.createApp({}).mount('#root'); 引入一个组件挂载到id=root的html标签;
    • data() {} 初始化组件的变量count;
    • methods: {} 定义普通成员函数handleBtnClick;
    • mounted() {} 在页面完成加载后自动调用;
    • template: `` 定义组件的模板,动态翻译成html;

    2.挂载点 

    1. html>
    2. <html lang="en">
    3. <head>
    4. <meta charset="UTF-8">
    5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
    6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
    7. <title>hello worldtitle>
    8. <script src="https://unpkg.com/vue@next">script>
    9. head>
    10. <body>
    11. <div id="root" class="root"> div>
    12. body>
    13. <script>
    14. Vue.createApp({
    15. data() {
    16. return {
    17. count: 0
    18. }
    19. },
    20. methods: {
    21. handleBtnClick() {
    22. this.count = 0;
    23. }
    24. },
    25. mounted() {
    26. setInterval(() => {
    27. ++this.count;
    28. }, 1000/10);
    29. console.log("run mounted...");
    30. },
    31. template: `
    32. count is {{count}}

    33. `
    34. // }).mount('#root'); //id选择器
    35. // }).mount('.root'); //class选择器
    36. }).mount('div'); //标签选择器
    37. script>
    38. html>
    •  }).mount('#root');  id选择器
    • }).mount('.root');    class选择器
    • }).mount('div');       标签选择器

    3.vue指令

    3.1 内容绑定,事件绑定

    • v-text

    v-text的作用是根据变量填充标签的内容。

    示例代码:

    1. html>
    2. <html lang="en">
    3. <head>
    4. <meta charset="UTF-8">
    5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
    6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
    7. <title>hello worldtitle>
    8. <script src="https://unpkg.com/vue@next">script>
    9. head>
    10. <body>
    11. <div id="app"> div>
    12. body>
    13. <script>
    14. Vue.createApp({
    15. data() {
    16. return {
    17. count: 0
    18. }
    19. },
    20. template: `
    21. <h3 v-text="'count is ' + count">h3>
    22. <h3 v-text="'count is ' + this.count">h3>
    23. <h3>count is {{count}} h3>
    24. <h3>count is {{this.count}} h3>
    25. `
    26. }).mount('#app');
    27. script>
    28. html>

    运行结果: 

    • v-html

    v-html与v-text类似,作用是根据变量填充标签的html内容。

    示例代码:

    1. html>
    2. <html lang="en">
    3. <head>
    4. <meta charset="UTF-8">
    5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
    6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
    7. <title>hello worldtitle>
    8. <script src="https://unpkg.com/vue@next">script>
    9. head>
    10. <body>
    11. <div id="app"> div>
    12. body>
    13. <script>
    14. Vue.createApp({
    15. data() {
    16. return {
    17. content: '<b>hello world!b>'
    18. }
    19. },
    20. template: `
    21. <p v-html="'content is ' + content">p>
    22. <p v-html="'content is ' + this.content">p>
    23. <p>content is {{content}} p>
    24. <p>content is {{this.content}} p>
    25. `
    26. }).mount('#app');
    27. script>
    28. html>

    运行结果:

     

    • v-on基础

    v-on的作用是为元素绑定事件。

    示例代码:

    1. html>
    2. <html lang="en">
    3. <head>
    4. <meta charset="UTF-8">
    5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
    6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
    7. <title>hello worldtitle>
    8. <script src="https://unpkg.com/vue@next">script>
    9. head>
    10. <body>
    11. <div id="app"> div>
    12. body>
    13. <script>
    14. Vue.createApp({
    15. data() {
    16. return {
    17. content1: '',
    18. content2: '',
    19. content3: '',
    20. }
    21. },
    22. methods: {
    23. handleBtnClick() {
    24. this.content1 = 'handleBtnClick';
    25. },
    26. handleBtnDoubleClick() {
    27. this.content2 = 'handleBtnDoubleClick';
    28. },
    29. handleBtnMouseEnter() {
    30. this.content3 = 'handleBtnMouseEnter';
    31. },
    32. },
    33. template: `
    34. <p> {{content1}} p>
    35. <p> {{content2}} p>
    36. <p> {{content3}} p>
    37. <input type="button" value="鼠标单击事件" v-on:click="handleBtnClick"/>
    38. <input type="button" value="鼠标双击事件" v-on:dblclick="handleBtnDoubleClick"/>
    39. <input type="button" value="鼠标进入事件" v-on:mouseenter="handleBtnMouseEnter"/>
    40. `
    41. }).mount('#app');
    42. script>
    43. html>

    v-on:也可简写成@

    1. <input type="button" value="鼠标单击事件" @click="handleBtnClick"/>
    2. <input type="button" value="鼠标双击事件" @dblclick="handleBtnDoubleClick"/>
    3. <input type="button" value="鼠标进入事件" @mouseenter="handleBtnMouseEnter"/>

    成员函数定义 也可写成

    1. handleBtnClick: function() {
    2. this.content1 = 'handleBtnClick';
    3. },
    4. handleBtnDoubleClick: function() {
    5. this.content2 = 'handleBtnDoubleClick';
    6. },
    7. handleBtnMouseEnter: function() {
    8. this.content3 = 'handleBtnMouseEnter';
    9. },

    运行结果:

    3.2 显示切换,属性绑定

    • v-show

    v-show的作用是根据表达式的真假,切换元素的显示和隐藏。

    示例代码:

    1. html>
    2. <html lang="en">
    3. <head>
    4. <meta charset="UTF-8">
    5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
    6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
    7. <title>hello worldtitle>
    8. <script src="https://unpkg.com/vue@next">script>
    9. head>
    10. <body>
    11. <div id="app"> div>
    12. body>
    13. <script>
    14. Vue.createApp({
    15. data() {
    16. return {
    17. isShow: false,
    18. btnText: '显示',
    19. }
    20. },
    21. methods: {
    22. handleBtnClick: function() {
    23. this.isShow = !this.isShow;
    24. this.btnText = !this.isShow ? '显示' : '隐藏';
    25. },
    26. },
    27. template: `
    28. hello world

    29. `
    30. }).mount('#app');
    31. script>
    32. html>

    运行结果:

    • v-if

    v-if的作用是根据表达式的真假,切换元素的显示和隐藏(操纵dom元素)。

    示例代码:

    1. html>
    2. <html lang="en">
    3. <head>
    4. <meta charset="UTF-8">
    5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
    6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
    7. <title>hello worldtitle>
    8. <script src="https://unpkg.com/vue@next">script>
    9. head>
    10. <body>
    11. <div id="app"> div>
    12. body>
    13. <script>
    14. Vue.createApp({
    15. data() {
    16. return {
    17. isShow: false,
    18. btnText: '显示',
    19. }
    20. },
    21. methods: {
    22. handleBtnClick: function() {
    23. this.isShow = !this.isShow;
    24. this.btnText = !this.isShow ? '显示' : '隐藏';
    25. },
    26. },
    27. template: `
    28. hello world

    29. test

    30. `
    31. }).mount('#app');
    32. script>
    33. html>

    运行结果:

     

    • v-bind

    v-bind的作用是设置元素的属性。

    示例代码:

    1. DOCTYPE html>
    2. hello world
    • 上述“”也可以简写成“”;
    • 上述“:class="isActive ? 'active' : ''"”也可写成“:class="{active : isActive}"” 。

    运行结果:

     

    3.3 列表循环,表单元素绑定 

    • v-for

    v-for的作用是根据数据生成列表结构。

    示例代码:​​​​​​​

    1. DOCTYPE html>
    2. hello world

    运行结果:

     

    • v-on补充​​​​​​​​​​​​​​

    v-on还可以用于绑定带有参数的事件函数。

    示例代码:​​​​​​​

    1. DOCTYPE html>
    2. hello world

    运行结果:​​​​​​​​​​​​​​

     

    • v-model

    v-model的作用是获取和设置表单元素的值(双向数据绑定)。

    示例代码:​​​​​​​

    1. DOCTYPE html>
    2. hello world

    运行结果:​​​​​​​​​​​​​​

    ​​​​​​​ 

  • 相关阅读:
    git中如何获取远程仓库的最新代码?
    Python命令行可以用下划线_代表上一次计算的结果
    力扣26 - 删除有序数组中的重复项【快慢指针】
    git revert 撤销之前的提交
    git如何把test分支做好的功能 文件和文件夹复制到master
    python使用SMTP发送邮件
    【FPGA教程案例55】深度学习案例2——基于FPGA的CNN卷积神经网络之ReLu激活层verilog实现
    MySQL InnoDB 是怎么使用 B+ 树存数据的?
    vue全局设置传值到后台不能为null
    python开发之个微机器人的二次开发
  • 原文地址:https://blog.csdn.net/qq_21950929/article/details/127771563